8

テーブル内の外部キーの適切な処理を検証したい。以下に、作成中の 2 つのテーブルを示します。住所が記載されていない可能性があるため、null にしたいと考えています。それ以外の場合は、アドレス テーブルから主キーを参照し、それを Person テーブルに外部キーとして格納します。人なしで住所オブジェクトを持つことも可能です。

個人のテーブル:

CREATE TABLE Person
(
    PersonID int IDENTITY PRIMARY KEY,
    FName varchar(50) NULL,
    MI char(1) NULL,
    LName varchar(50) NULL,
    AddressID int FOREIGN KEY REFERENCES Address(AddressID) NULL,
)

住所の表:

CREATE TABLE Address
(
    AddressID int IDENTITY PRIMARY KEY,
    Street varchar(60) NULL,
    City varchar(50) NULL,
    State varchar(2) NULL,
    Zip varchar(10)NULL,
    Intersection1 varchar(60) NULL,
    Intersection2 varchar(60) NULL,
)

また、Q2トリガーを使用したことはありませんが、挿入を処理する方法は、ストアドプロシージャを使用して最初にアドレスを挿入し、主キーを取得してから、ストアドプロシージャに渡してPersonテーブルに挿入することだと思いますか?

4

2 に答える 2

4

あなたへの質問: 同じ住所に複数の人が住んでいる可能性はありますか? また、一人の人が複数の住所に住んでいる可能性はありますか?

この場合、追加の PersonAddress テーブルとの M:N 関係を検討してください。

そうでない場合は、「住所のない人、または住所のない人がいる可能性が高いですか?」と自問します。目標は、AddressID を Person テーブルに保存するか、PersonID を Address テーブルに保存するかを決定することです。

于 2013-04-12T08:43:12.993 に答える