以下数据应该是外键还是主键?

时间:2013-01-16 01:47:35

标签: sql foreign-keys

会话

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

罚金

SessionId (PK)  PenaltyEnalbed
1               1

我的问题是,由于惩罚表中的SessionId是指Session表,惩罚表中的SessionId应该是主键还是外键?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

SessionID中的

Penalty应定义为FOREIGN KEY,因为您已经提到它引用了表SessionID的列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)
);