Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 下面的数据应该是外键还是主键?_Sql_Foreign Keys - Fatal编程技术网

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)PenaltyEnalbed

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)
);

只差几分钟。如果你想看,我还有另一个db问题,我在做db之前的最后一个db问题如果你想看,我还有另一个db问题