一对一强制出勤关系

问题描述 投票:0回答:1

enter image description here

如图所示,有2张表,一对一关系,强制参与。你能帮我将其实现为 ddl 代码吗?当没有强制参与的时候我可以很容易地做到。但是,当强制参与时我不知道该怎么做。

sql database database-design
1个回答
0
投票

如果

CardNo
对于
PersonId
是强制性的,那么(通过 Codd 的 3NF)它是 PK
PersonId
的普通属性。  您不需要第二个表,您需要单个表上的第二个索引。

CREATE TABLE Person (
    PersonId INT       NOT NULL,
    Name     CHAR(30)  NOT NULL,
    Surname  CHAR(30)  NOT NULL,
    CardNo   INT       NOT NULL,
    PRIMARY KEY PersonId
    UNIQUE CardNo
    )
© www.soinside.com 2019 - 2024. All rights reserved.