私はデータベースを持っています。ある表では、各行にその行に関連付けられたユーザーのリストが含まれている必要があります。そうする最善の方法は何ですか?私が持っているオプションは次のとおりです。SQL - 行と物のリストを関連付けるためのデザイン
1) "users"テーブルへのインデックスで、idごとに複数のエントリがあり、各ユーザーごとに1つのカラムがあります。欠点は余分な参加が必要なことです。ユーザーは少なくなりますが、多くの行があります。余分な参加が本当に価値がありますか?
2)すべてのユーザーIDが2の累乗になるようにしてください。 「ユーザー」フィールドは、これらのビット単位のORです。私は32人以上のユーザーを必要としませんが、ビット単位でANDを高速かつ有効に結合できますか?
3)ユーザーの任意の組み合わせに対して個別のユーザーを作成します。 2)のようなものは少ないが知的ではない。
新しい行を追加するとき、既存のすべての組み合わせをチェックして、それが既に存在するかどうかを確認するのはどうですか?または、別々のIDと重複した組み合わせがありますか? – Claudiu
組み合わせはありません。ジョインテーブルには、RowID、UserIDの2つのフィールドがあります。特定の各行に関連付けられている特定のユーザーをそれぞれ挿入します。一般に、単一のフィールドに値のリストを格納する(または格納することを考えている)場合は、間違っています。 – Joe
ええ、それは私が結合テーブルが、私が理解していることを確認するようなものだと思ったものです。 – Claudiu