强实体中的MySQL外键

时间:2018-12-04 15:31:16

标签: mysql sql key

这两个实体都很强大,但nif和UserID可以按此顺序识别Perfil(Profile)和Utilizador(英语用户)。如您所见,我在User表中有一个外键do Profile表,在第二个表中是需要声明NIFId并将其放在主键中,就像我在注释(--primary key(UserID, NifID))中一样,还是应该声明NIFId作为唯一属性,或者第三种选择不在此处声明,因为它不是neded。 非常感谢你!

create table Perfil(  
  nif char(9),              
  profile_type int(1) NOT NULL,         
  nome varchar(45) NOT NULL,  
  telefone char(9) NOT NULL UNIQUE,  
  DataBirth date NOT NULL,  
  CHECK(profile_type==0 OR profile_type==1)  
  primary key(nif)  
);  


create table Utilizador(  
  UserID int NOT NULL AUTO_INCREMENT,  
  -- NifID char(9) NOT NULL UNIQUE,  -- Is it needed to declare this atribute  
  role int(3) NOT NULL ,                 -- varies from 1 to 3  
  username varchar(20) NOT NULL UNIQUE,  
  password varchar(15) NOT NULL,  
  -- primary key(UserID, NifID),   
  primary key(UserID),  
  FOREIGN KEY (NifID) REFERENCES Perfil(nif)  
);  

0 个答案:

没有答案