0


1

私の会社のWebサイトの背後にあるデータベースを整理しようとしています。

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

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

問題は、2NFにしたときです。

サイト(参照、名前、料金)

居住地(SiteReference、ResidentReference、)

居住者(参照、住所、ユーザー名、パスワード)

居住者参照は、2つのサイトがある場合、1つの居住者を一意に識別することは決してなく、その場合は2 001になります。 このフィールドは私たちのWebサービスに登録されたときに一度だけ入力されるので(そしてもしそうなら!)私はusernameを使うことができません。 私は単に居住者のための新しいオートナンバーIDを紹介したいと思いますが、もっと優雅な解決策があることを私にはっきりさせる何かがあります。 誰もがそれが何かを示唆することはできますか?

1 Answer


1


あなたはサイトから住民の参照を「解放する」必要があります - 例えば それをResidentIDにし、各ResidentIDがResidentテーブル内でグローバルに一意であることを確認してください。 すべてのサイトは、サイトテーブル内にグローバルに一意のサイトIDを持つ必要があります。

それからそしてそれから初めてあなたは良いdbスキーマを作成することができるでしょう。

居住者テーブルは居住者(彼らの居住者IDによってユニークに識別される)とサイト(ここでもまた彼らのサイトIDによって固有に識別される)の間のリンクを提供するでしょう。

マーク