2009-04-15 2 views
0

私の会社のウェブサイトの背後にあるデータベースを整理しようとしています。RDBMSキーコンフル

サイトと居住者の両方に対処しています。現時点では、Site ReferenceはResidentsテーブルに外部キーとして含まれていますが、明らかにこれは1NFにしかありません。

サイト参照の形式は、nnnnn(たとえば、12345)です。各居住者は、nnn形式のサイト内で独自の参照を持っています(001から始まり最大999まで)。

問題は、私は2NFにそれを取る場合は、次のとおりです。

サイト(参考、 名、 有料)

レジデンシー(SiteReference、 ResidentReference、)

レジデント(参考、 住所、 ユーザー名、 パスワード)

The Resident Reference wi 1つの居住者を一意に特定することは決してありません.2つのサイトがある場合、2つの001が存在します。私はこのフィールドは一度だけ(そしてもしあれば!)人口が住んでいるので、私たちのウェブサービスのために登録しているので、ユーザー名は使用できません。居住者用の新しい自習IDを導入するだけですが、より洗練されたソリューションがあることに私が嫌うものがあります。誰でもそれが何であるかを提案できますか?

+0

私が考えていた何が1NFと2NF – norbertB

+0

参照http://en.wikipedia.org/wiki/Database_normalization – Leonidas

答えて

1

サイトから常駐リファレンスを「無料」にする必要があります。それをResidentIDにし、各ResidentIDがResidentテーブル内でグローバルに一意であることを確認します。すべてのサイトには、サイトテーブル内にグローバルに一意のSiteIDも必要です。

次に、適切なdbスキーマを作成することができます。

居住地テーブルは、居住者(ResidentIDによって一意に識別される)とサイト(サイトIDによって再度一意に識別される)との間のリンクを提供します。

マルク・

+0

を説明してください。確認していただきありがとうございます。 – Bailz