個人ブログをデザインする必要があるのですが、データベースの設計で問題が発生しました。
実装したい機能は、一般ユーザーはブログにコメントのみ可能です。管理者 (つまり私) は、ログインしてブログを投稿したり、コメントに返信したりできます。
元々設計されていたテーブルには、User、Admin、Post、および Comment が含まれています。
ただし、User と Comment は 1 対多であり、Admin と Comment も 1 対多です。これでは汚くなってしまいます。
そこで、User テーブルと Admin テーブルを User という名前の 1 つのテーブルにマージしたいのですが、管理者にはパスワード フィールドが必要ですが、一般ユーザーには必要ありません。管理者は 1 人だけですが、一般ユーザーは多数います。だからデザインに無駄がある。
User テーブルと Admin テーブルの設計方法についていくつか提案をお願いします。
さらにデータベース設計も学びたいです。お勧めの情報を教えてください。データベースの操作に関する多くの情報を見てきましたが、データベースはどのように設計されているのでしょうか?
ユーザー、ロール、関数、3つのテーブルを分離可能
ユーザー対応ロール、ロール対応機能、
ロールが一般ユーザーと管理者になりました。確認すると、ロールを関連付けることでパスワードを決定する必要があるかどうかがわかります。
役割に応じて異なる機能も割り当てられ、関連付けテーブルに追加されますユーザーはログイン情報のみを記録する必要があります。一般ユーザーはコメントするだけなので、ログインする必要はありません。コメントには一般ユーザーのユーザー名またはメールアドレスが記録されます。コメントとは一対多の関係なので、ユーザーとの関係を意識する必要がありません
あなたの説明を見ると、あなたが苦労している点は、一般のユーザーはパスワードを必要としないが、管理者はデータベースにパスワードを必要とし、管理者はあなただけであるということです~~私が個人的に考える方法は、データベースのストレージと設計です。 1階の「liujijans」の方法によると、ライブラリにパスワードを追加する必要はなく、管理者パスワードは、事前に設定したプレフィックス+今日の日付など、動的に設定できます。パスワードの種類はさらに安全であり、コード内で意図的に設定する必要はありません。権限システム、ユーザーセンター、実際のビジネスを分離して設計できるため、柔軟性が高まるだけでなく、ビジネスのモジュール化もより構造化されます。