私は、ユーザーごとに不確定な数のフィールドに対応できるデータベースを設計する方法を理解しようとしています。ユーザーごとに不確定なフィールド数に対応するデータベースを設計する最善の方法?
たとえば、User1はProject A、B、Cに関与します。User2はProject A、C、E、Gに関与し、User3はProject A、B、C、D、E、F、Gに関与します。
ユーザーが列に表示されているテーブルと、それに関連するプロジェクトを記録する列が7つあります.100人のプロジェクトに巻き込まれているUser4に対応するまで、かなりうまくいきます。私のモデルは、トラックを保持するために100列を必要とします。
最終的に定義する列の数を事前に知る方法はありません。
User1 & User3をProject Bに関連付けることができますが、その後、さらに10,000本のプロジェクトがある場合は、各プロジェクトレコードを調べて、プロジェクトの完全なリストを作成する必要があります。特定のユーザーが関与しているため、非常に非効率的です。
だから...どのように追跡するのですか?ちょうどこれの周りに私の頭を包むことはできません。
私はこれがあまりにも言及されていないか粗大な小学校の場合は私を許してください。
おかげで、
ベン
ああ、そうです。プロジェクトはそのまま20人の貢献者に制限されているので、ProjIDは行として、そして貢献者のUserIDには20列のものとなります。それは私がSELECT ProjID WHERE column_1 = UserID OR column_2 = UserID ORに辞職したことを意味しますか?column_20 = UserID?あるいは、私はその部分をより効率的に行うことができますか? –
より効率的に、より明確になるように私の答えを編集します – kaveman
あなたの努力のおかげでTON、kaveman。私は完全にそれを得る前にそれを試してみるつもりですが、私の理解を再認識させてください。もしあなたがこれを読んだら、私はそれを得るか教えてください。ユーザーがプロジェクトに貢献したとき、 ProjIDとUserIDがuser_projectsテーブルに追加されます。それで、私は問題のユーザーのIDが存在する場所でもProjIDを簡単に取得できます。それは言うほど簡単だった。理にかなっている?もう一度ありがとう... –