根据特定ID在表的列中添加多个值

时间:2013-08-16 06:42:13

标签: sql sql-server sql-server-2008

有人可以告诉我们如何针对一个ID添加多个值吗?

例如,我想针对一个ID添加多个电话号码。

我该怎么做?给场景应该创建两个表还是一个?

1 个答案:

答案 0 :(得分:1)

  

Give Scenario应该创建两个表还是一个?

是的,您应该为此数据创建一个单独的表,其中多行包含单独的电话号码。然后,id上会有一个外键将这些行链接回第一个表中具有特定id的单行。

create table T (
    ID char(8) not null,
    /* other columns */
    constraint PK_T PRIMARY KEY (ID)
)

create table PhoneNumbers (
    ID char(8) not null,
    PhoneType varchar(12) not null,
    Number varchar(15) not null,
    constraint PK_PhoneNumbers PRIMARY KEY (PhoneNumbers,PhoneType),
    constraint CK_PhoneNumber_Types CHECK (PhoneType in ('Home','Work','Mobile')),
    constraint FK_PhoneNUmbers_T FOREIGN KEY (ID) references T(ID)
)