0

会议

SessionId (PK) SessionName  SessionDuration  TotalMarks  SessionWeight  ModuleId (FK)
1             AAA          01:00:00        30         20            1

惩罚

SessionId (PK)  PenaltyEnalbed
1               1

我的问题是,就像SessionId在 Penalty Table 中指代表一样,在惩罚表中Session应该SessionId是主键还是外键?

4

2 回答 2

1

它应该是外键,但作为惩罚,还应该有一个 Id 设置为主键。所以惩罚应该是 ID(PK) SessionId (FK) PenaltyEnalbed

于 2013-01-16T01:49:15.127 回答
1

SessionIDin tablePenalty应该定义为,FOREIGN KEY因为您已经提到它在SessionIDtable 的列上引用Session

CREATE TABLE Session
(
    SessionID INT PRIMARY KEY NOT NULL,
    -- OTHER columns here...
);

CREATE TABLE Penalty
(
    SessionID INT NOT NULL,
    -- OTHER columns here...,
    CONSTRAINT penalty_fk FOREIGN KEY (SessionID)
        REFERENCES Session(SessionID)
);
于 2013-01-16T01:49:44.497 回答