CREATE TABLE SPONSORSHIP 中的 UNIQUE CONSTRAINT 含义

UNIQUE CONSTRAINT Meaning in CREATE TABLE SPONSORSHIP

想知道UNIQUE约束是什么意思,是生成的脚本,是关于赞助的,不是必须的吗?

CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt, id_pers_cpt_PERSONNE_COMPTE) 

Table:

CREATE TABLE PARRAINAGE
(
    id_parrainage               Int  Auto_increment  NOT NULL ,
    date                        Date NOT NULL ,
    id_pers_cpt                 Int NOT NULL ,
    id_pers_cpt_PERSONNE_COMPTE Int NOT NULL ,
    id_etab                     Int,
    CONSTRAINT PARRAINAGE_PK PRIMARY KEY (id_parrainage)
   ,CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_FK FOREIGN KEY (id_pers_cpt) REFERENCES PERSONNE_COMPTE(id_pers_cpt)
   ,CONSTRAINT PARRAINAGE_PERSONNE_COMPTE0_FK FOREIGN KEY (id_pers_cpt_PERSONNE_COMPTE) REFERENCES PERSONNE_COMPTE(id_pers_cpt)
   ,CONSTRAINT PARRAINAGE_ETABLISSEMENT1_FK FOREIGN KEY (id_etab) REFERENCES ETABLISSEMENT(id_etab)
   ,CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt)

)ENGINE=InnoDB;
  • UNIQUE 约束确保列中的所有值都是 不一样。

    UNIQUE 和 PRIMARY KEY 约束都为 一列或一组列的唯一性。

    PRIMARY KEY 约束自动具有 UNIQUE 约束。

    但是,每个 table 可以有很多 UNIQUE 约束,但只有一个 每个 table.

  • 的 PRIMARY KEY 约束

在您的 table id_parrainage 主键和 id_pers_cpt 唯一键中都不会重复

id_parrainage 列将不允许空值,并且 id_pers_cpt 不允许空值

table 似乎与两个人有关:

  • id_pers_cpt
  • id_pers_cpt_PERSONNE_COMPTE

约束条件

CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt)

保证id_pers_cpt在table中只能出现一次。因此,一个 id_pers_cpt_PERSONNE_COMPTE 可以与多个 id_pers_cpt 相关,但是一个 id_pers_cpt 只能与一个 id_pers_cpt_PERSONNE_COMPTE.

相关

这使它成为 pers_cpt table,每个 id_pers_cpt 有一个记录。如果你想允许一个 id_pers_cpt 与多个 id_pers_cpt_PERSONNE_COMPTE 相关,那么你需要你提到的约束:

CONSTRAINT PARRAINAGE_PERSONNE_COMPTE_AK UNIQUE (id_pers_cpt, id_pers_cpt_PERSONNE_COMPTE)