私はPHP/MySQLでWebアプリに取り組んでおり、ユーザー/グループの関連付けを作成する必要があります。
これが私が狙っているものです:
グループやユーザーの数は増え続けます。
ユーザーは、いつでもグループの関連付けを変更できるようになります。グループアソシエーションは
、サイトに表示されるコンテンツの優先順位を決定します。ユーザーに送信される電子メールの更新は、現在のグループの関連付けによって決定されます。
私の質問は、このユーザー/グループの関連付けを処理するための最良の方法は何ですか?
私の現在のテーブル構造は次のようになります(通信を容易にするために簡略化されています)。
Users:
User_ID, User_name, Fname, Lname, is_dealer
Deals:
Deal_ID, Dealer_ID, Deal_name, Deal_content
Dealers:
Dealer_ID, User_ID, Dealer_name, Dealer address.. etc.
私の最初の考えは、Group_ID列とGroup_name列を持つGroupsテーブルを作成することです。次に、次の2つのいずれかを実行できます。
「User_ID」という名前の列をGroupsテーブルに作成できます。グループの関連付けごとに、Group_ID、Group_name、およびUser_IDを示す行があります。このオプションは、巨大な超冗長データベーステーブルを作成するように感じます。
私が考えることができる他のオプションは、UsersテーブルにGroup_ID列を作成し、解析する必要のあるテキストのある種の配列で、ユーザーが関連付けられているすべてのグループをその列に入力することです。ここでの問題は、グループの数に制限がないことです。ユーザーのグループの関連付けをすべて、ユーザーテーブルの各行の1つの「値」に詰め込むのは非常に難しいようです。
本当にこれはSQLデータベースのロジック/設計の問題です。どんな援助も大きな助けになるでしょう。
ありがとう!