小编Mat*_*hew的帖子

可选择更具体的关系

原谅我的标题,我想不出任何能准确描述我在说什么的东西。

我目前有以下关系。

CREATE TABLE Events 
(
    ID INT IDENTITY(1,1) NOT NULL,
    Name NVARCHAR(64) NOT NULL,
    PRIMARY KEY(ID)
)

CREATE TABLE Locations
(
    ID INT IDENTITY(1,1) NOT NULL,
    EventID INT NOT NULL,
    Name NVARCHAR(64) NOT NULL,
    PRIMARY KEY(ID)
)

ALTER TABLE Locations ADD FOREIGN KEY(EventID) REFERENCES Events(ID)
Run Code Online (Sandbox Code Playgroud)

基本上,一个事件可以有零个或多个位置。我现在想要的是将捐赠与事件相关联,或者更具体地将其与位置相关联。

CREATE TABLE Donations
(
    ID INT IDENTITY(1,1) NOT NULL,
    EventID INT NOT NULL,
    LocationID INT NULL, -- this is optional
    PRIMARY KEY(ID)
)

ALTER TABLE Donations ADD FOREIGN KEY(EventID) REFERENCES Events(ID)
ALTER TABLE …
Run Code Online (Sandbox Code Playgroud)

schema database-design sql-server referential-integrity

5
推荐指数
1
解决办法
145
查看次数