我有一个名为cars
的表和一个名为roads
Roads: Cars:
Name Road_Id Owner Car_Id
------------------- ---------------------
roade45 1 Hugo 1
roade20 2 Eson 2
roade10 3 Karl 3
我需要在这些之间创建一个N:M关系(一条路可以在很多路上行驶,一条路可以有很多车)。
这是一个愚蠢的例子,但需要成为N:M关系。
我通过使用这些列
创建另一个名为cars_roads
的表来实现此关系
Road_id | Car_id | uniqueValue
现在我的问题是我不知道如何让uniqueValue
采取形式,这个值将用于防止双重发生,例如。同一辆车第二次被添加到同一条路上。
我的表格是使用以下代码创建的:
CREATE TABLE [dbo].[Tbl_cars_roads]
(
[Road_id] INT NOT NULL,
[car_id] INT NOT NULL,
CONSTRAINT [PK_Tbl_Road_id] FOREIGN KEY ([Road_id]) REFERENCES [dbo].[Tbl_Cars] ([Road_id]),
CONSTRAINT [PK_Tbl_car_id] FOREIGN KEY ([car_id]) REFERENCES [dbo].[Tbl_Roads] ([car_id])
)
如何添加uniqueValue
密钥并使其按照此代码的说明运行?
答案 0 :(得分:3)
这应该是你想要的唯一群体。
CONSTRAINT [UQ_CarRoads] UNIQUE NONCLUSTERED
(
[Road_id] ASC,
[car_id] ASC
)
答案 1 :(得分:1)
只需在上次约束后添加以下代码:
CONSTRAINT [UK_Road_Car] UNIQUE ([Road_id], [car_id])