我的问题是,我想在数据库中存储一个有多个电话号码的人.对于数字的单个变量,每个只存储一个数字.现在,如果我想添加另一个电话号码,它将创建另一个具有相同细节但数量不同的新记录.我想一起显示所有这些数字.有人可以帮忙吗?
sem*_*mao 16
您应该为Person和PhoneNumber创建单独的表.
CREATE TABLE Person(PersonId int IDENTITY(1,1) PRIMARY KEY)
CREATE TABLE Phone(
PersonId int,
PhoneNumber varchar(20),
CONSTRAINT PK_Phone PRIMARY KEY(PersonId,PhoneNumber),
CONSTRAINT FK_PersonId FOREIGN KEY(PersonId) REFERENCES Person(PersonId)
)
Run Code Online (Sandbox Code Playgroud)
chr*_*dev 10
您可以使用第二个表来存储数字,并使用外键链接:
PersonTable: PersonId, Name, etc..
Run Code Online (Sandbox Code Playgroud)
第二张表将保留数字......
NumbersTable: NumberId, PersonId(fk), Number
Run Code Online (Sandbox Code Playgroud)
然后你可以得到这样的数字......
SELECT p.Name, n.Number from PersonTable p Left Join NumbersTable n
on p.PersonId = n.PersonId
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子.LEFT JOIN如果一个人没有提供他们的号码,我在这里使用了一个.此外,这只是伪代码,因此不要在名称中使用Table.