Sql 下面的数据应该是外键还是主键?
会话Sql 下面的数据应该是外键还是主键?,sql,foreign-keys,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 (PK) SessionName SessionDuration TotalMarks SessionWeight ModuleId (FK)
1 AAA 01:00:00 30 20 1
处罚
SessionId (PK) PenaltyEnalbed
1 1
我的问题是,由于惩罚表中的
SessionId
指的是Session
表,那么惩罚表中的SessionId
应该是主键还是外键?它应该是外键,但在惩罚表中也应该有一个Id设置为主键。因此,在惩罚中,它应该是ID(PK)SessionId(FK)PenaltyEnalbedSessionId
表中的惩罚
应该定义为外键
,因为您已经提到它引用了表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)
);
只差几分钟。如果你想看,我还有另一个db问题,我在做db之前的最后一个db问题如果你想看,我还有另一个db问题