Kai*_*ran 8 sql sql-server sql-server-2008
我想验证表中正确处理外键的方法.这是我在下面创建的两个表.一个人可能没有列出地址,所以我希望它为空.否则我想引用地址表中的主键并将其作为外键存储在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
问您的问题:同一个地址是否可能有多个人居住?另外,一个人有可能住在多个地址吗?
\n\n如果是这种情况,请考虑与附加 PersonAddress 表的 M:N 关系。
\n\n否则如果不是这种情况我\xe2\x80\x99d问自己\xe2\x80\x9cis你更有可能\xe2\x80\x99会有没有地址的人或没有地址的人?\xe2\x80\x9d目标是确定是否应该将 AddressID 与 Person 表一起存储,还是将 PersonID 与 Address 表一起存储?
\n