私は今MySQLデータベースのベストプラクティスに疑問を投げかけ、これを理解しようとしています。ユーザーが「はい/いいえ」と記入するフォームがあります。「はい」の場合は、説明するための追加のフィールドがあります。約36のフィールドがあり、テーブルは1>1になります。15個のフィールドが(A)ユーザーに適用され、8個が(B)ユーザーに適用され、8個が(C)ユーザーに適用され、5個が(D)ユーザーに適用されるとします。15、8、8、5フィールドの個別のテーブル、またはいくつかの空のフィールドを持つ1つの大きな36フィールドテーブルがある方がよいでしょうか。パフォーマンスと正規化を探しています。
2 に答える
0
私の選択では、答えはリストが変更されるかどうかによって異なります。そうでない場合、1つの幅の広いテーブルは「よりクリーン」になります(クエリが簡単になるなど)。リストを変更する必要がある場合、MySQLで既存の大きなテーブルを再構築しようとするのは悪夢なので、属性テーブルを使用することをお勧めします。
お役に立てば幸いです。
于 2012-09-20T21:27:01.497 に答える
0
適切に正規化するには、別のジャンクションテーブルを作成して、「はい」と答えたユーザーと説明をリンクします。37番目の説明がシステムに追加されたという理由だけで、Usersテーブルを変更しなければならない状況に陥りたくはありません。
于 2012-09-20T21:27:22.820 に答える