0

共通の登録フィールドを持つ登録フォームと、「サービス」という見出しが付いた 2 つの複数選択リストがあります。フォームデータをデータベースにテーブルに保存したかった。現在、「registrations」というテーブルは 1 つしかありません。また、「registration_services」という名前の別の関係テーブルを作成して、regid と serviceid を保存する必要があるかどうかを考え直しています。

このテーブルには少なくとも 10000 レコードが必要です。同じテーブルの 1 つの列に複数の選択リストの値を格納した方がよいでしょうか?

それとも、別のテーブルを作成し、親子関係として保存しますか?

ベストプラクティスは何ですか?

アドバイスしてください ありがとう SIA

4

3 に答える 3

2

これらのサービスを他の場所で使用する場合は、registration_servicesテーブルを作成し、 JOINsを使用してデータを取得するのが最適です。それは十分に効率的でなければなりません。10000はまったく大きな数ではありません。

純粋に有益であり、これらのサービスへの他の参照がない場合は、CSVとして1つの列に保存できますが、それはまれなケースであり、他の場所では必要ないのではないかと思います。

于 2010-03-03T13:06:37.087 に答える
1

値のリストを単一の列に格納しないでください。

あなたが説明しているのは、登録と別のエンティティとの間の1対多の関係です。リレーショナルデータベースをリレーショナルデータベースとして使用します。

1つの列に複数の値を入力する場合の大きな問題は、それらの値の特定の1つを持つレコードを照会することがほぼ不可能になる(そして確かにパフォーマンスが低下する)ことです。

于 2010-03-03T13:06:29.310 に答える
1

別のテーブルにデータを保持する方がはるかに優れています。データセットが本当に、本当に大規模にならない限り、速度が低下することはないと思います。その時点で、何らかの形式のキャッシュを使用できる可能性があります。これにより、長期的にはデータの維持がはるかに簡単になり、インデックスや FK 制約を使用してデータの整合性を維持することができます。

于 2010-03-03T13:14:56.847 に答える