2

私は通常データベースを設計しないので、ユーザーを登録するためのテーブルを正規化する方法 (または正規化しない方法) について疑問を持っています。私が疑問を持っているフィールドは次のとおりです。

  • locationTown: 国ごとに正規化して別のテーブルを作成する予定ですが、町についても同じことを行う必要がありますか? ユーザーは、ドロップダウンから選択するのではなく、登録時にこれを入力すると思います。入力がユーザーからのものである可能性がある場合、正規化できますか?
  • maritalStatus: 約 5 種類のステータスから選択できます。

また、実際のデータベース スキーマ/正規化の例を見つけるのに適した場所を知っている人はいますか?

ありがとう

4

2 に答える 2

1
  • locationTown- ユーザーテーブル内に直接保存するだけです。そうしないと、タイプミスやコード ケースを考慮して、既存の町を検索する必要があります。また、非標準の文字や言語を使用する人もいます (クラクフ、クラクフ、クラクフ、ローマ字化も参照)。本当に町のテーブルが必要な場合は、少なくともオートコンプリート ボックスを提供して、ユーザーが既存の町を選択する可能性を高めます。それ以外の場合は、多数の重複またはほぼ重複に備えてください。

  • maritalStatus- 一方、これは別の表にある必要があります。より正確には、婚姻状況を表すには 1 文字または数字を使用します。について覚えておいてください)、外部キー制約により、誤ったステータスが使用されないようにします。

于 2012-05-14T19:11:09.227 に答える
-2

あまり心配する必要はありません。データベースの正規化 (3NF など) は学界で過度に強調されており、産業界ではあまり実用的ではありません。さらに、これらの実装が適切な場所を判断するために、スキーマ全体を確認する必要があります。正規化について心配する前に、一般的に使用される列のインデックス作成に集中してください。

さらに飛び込む前に、この SO の質問を確認することをお勧めします

于 2012-05-14T19:11:36.443 に答える