在列中添加多个外键

时间:2015-08-13 13:59:23

标签: sql sql-server

有没有办法在具有外键约束的列中存储多个值?

我们说我有状态表和项目表。项目表具有状态表的外键约束。现在我们在三个不同的州实施同一个项目。如何选择多个状态?

样品

EAM7A 1 3 EI AMANDINE MRV SHP 70 W 0 SH3-A1 1 SHP 70W OVOIDE AI E

项目表

Create table states (
Stateid int identity primary key, 
State varchar(100)
);

如何在项目状态表中插入多个值?

基于TPHE回答让我创建另一个名为projectstates的表

Create table projects (
ProjId int primary key identity, 
ProjTitle varchar (100),
Budget decimal,
);

现在,如何在将项目添加到项目表的同时在ProjectStates中插入数据?

2 个答案:

答案 0 :(得分:0)

我发现这样做的最好方法是首先创建没有外键约束的第二个表。然后,您可以使用数据填充两个表,然后引入约束 - 假设表中的数据符合约束。

此外,如果存在多对多关系,请添加映射表以允许此操作。

答案 1 :(得分:0)

它会破坏数据库设计的一些基本规则来添加多个值。您应该创建一个与states表具有一对多关系的新表(每个状态在新表中可以有多个值),并包含关联项目ID的列(也具有一对多关系)。然后,您将从states表连接到新表,然后再连接到项目表,反之亦然。 More info on how and why to design databases in this way.