2013-01-16 42 views
0

会话下面的数据应该是外键还是主键?

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

罚金

SessionId (PK) PenaltyEnalbed 
1    1 

我的问题是,作为SessionId在罚金表指Session表,应该SessionId在惩罚表是主密钥或foriegn键?

回答

1

它应该是外键,但在处罚中还应该有一个Id作为主键。因此,在点球应该是ID(PK)的SessionID(FK)表Penalty PenaltyEnalbed

+0

[链接](http://stackoverflow.com/questions/14350029/can-a-foreign-key-be-created-if-both-fields-are-non-unique)另一个分贝的问题,我有,如果你想看看 – user1914374

1

SessionID既然你已经提到,它是指在表SessionSessionID栏应定义为FOREIGN KEY

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

只是被分钟殴打。我有另一个数据库的问题,如果你想看看,我的最后一个数据库问题,我做数据库[链接](http://stackoverflow.com/questions/14350029/can-a-foreign-key-be-created-if-both -fields-是,非唯一) – user1914374