2016-06-17 1 views
1

私は電子商取引サイトを開発しており、グループ、ユーザー、およびメンバーシップのデータベース構造に関するこのコミュニティの考えを得たいと考えていました。ユーザー+メンバーシップ+グループのSQLデータベース構造

目標:ログイン時にユーザーのグループメンバーシップとアクセス権を決定します。ユーザーは、このサイトの販売者、管理者、サイトサポート、または何でもかまいません。スケーラブルでなければなりません。

INITIAL THOUGHT: 3つの別々のテーブル:usersgroups、およびmemberships。ログインに成功すると、メンバーシップテーブルでユーザーのIDを検索し、メンバーシップテーブルの同じ行からグループIDを取得します。そこから、グループテーブルからグループ情報を取得するための別のクエリ(グループ名、説明など)。ユーザーのセッションにメンバーシップを格納し、それを1日と呼びます。

問題:ログイン時に、不要な追加クエリを実行する必要はありません。上記の「初期思考」は、ログイン時に3つの別々のクエリで構成されています。


質問:

  • これは正しいアプローチですか?
  • 優れたデザインソリューションはありますか?
  • 管理者を自分のテーブルに分割したり、同じgroupsテーブルに入れたほうがいいですか?

答えて

0

データベースの設計は合理的です。ユーザーは複数のグループに属し、複数のメンバーシップを持つことができるため、ユーザーとグループの間、およびユーザーとメンバーシップの関係を保持する2つの追加テーブルUSER_GROUPおよびUSER_MEMBERSHIPが必要になります。