私は電子商取引サイトを開発しており、グループ、ユーザー、およびメンバーシップのデータベース構造に関するこのコミュニティの考えを得たいと考えていました。ユーザー+メンバーシップ+グループのSQLデータベース構造
目標:ログイン時にユーザーのグループメンバーシップとアクセス権を決定します。ユーザーは、このサイトの販売者、管理者、サイトサポート、または何でもかまいません。スケーラブルでなければなりません。
INITIAL THOUGHT: 3つの別々のテーブル:users
、groups
、およびmemberships
。ログインに成功すると、メンバーシップテーブルでユーザーのIDを検索し、メンバーシップテーブルの同じ行からグループIDを取得します。そこから、グループテーブルからグループ情報を取得するための別のクエリ(グループ名、説明など)。ユーザーのセッションにメンバーシップを格納し、それを1日と呼びます。
問題:ログイン時に、不要な追加クエリを実行する必要はありません。上記の「初期思考」は、ログイン時に3つの別々のクエリで構成されています。
質問:
- これは正しいアプローチですか?
- 優れたデザインソリューションはありますか?
- 管理者を自分のテーブルに分割したり、同じ
groups
テーブルに入れたほうがいいですか?