两个实体都很强大,Perfil(Profile) 和 Utilizador(英文用户)可以按 nif 和 UserID 的顺序识别。如您所见,我在 User 表中有一个外键 do Profile 表,在第二个中,它需要声明 NIFId 并将其放在它的主键上,就像我在评论 ( --primary key(UserID, NifID)) 中所做的那样,或者我应该将 NIFId 声明为唯一属性,或者第三个选项不在那里声明它,因为它没有被定义。非常感谢!
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)
);