0

DB 設計について質問があります。

州と国に関する情報を保存したいと思います。最初は、このすべての情報を 1 つのテーブルに保存できると考えていました ( General_info)。次に、このテーブルの各レコードに対して。国に属する列の値を繰り返す必要があります。

もう 1 つのアイデアは、このテーブルを 2 つのテーブル (General_info_countrygeneral_info_province) に分けることです。最初のテーブルには 3 つの列しかなく、もう 1 つのテーブルには 10 を超える列があります。

私は何をすべきか?どちらのアプローチがより効率的ですか?

4

2 に答える 2

3

最初のアプローチ (1 つの大きなテーブル) の最大の問題は、1 つの国の情報が変更された場合、複数の行を更新する必要があることです。つまり、間違いを犯して情報の一貫性が失われる可能性があります。

2 番目のアプローチは正規化されており、より優れたリレーショナル デザインと見なされます。

于 2012-11-19T11:55:37.193 に答える
0

関係が1対1であり、1対1のままである場合は、両方の方法で実行できます。しかし、それが1対多の場合は、もちろん、それらを分割し、多くの部分で外部キーを使用する必要があります。

関係が1対1の場合、質問はどのくらいの頻度ですべての属性を使用しますか?

両方のテーブルを頻繁に一緒に使用する場合は、クエリでそれらを頻繁に結合する必要があるため、分割しないことをお勧めします。

ただし、両方のテーブルの情報を一緒に使用するのではなく、2つの物語だけを使用する場合は、それらを分割することで時間を節約できます。

于 2012-11-19T11:59:30.380 に答える