Обе сущности сильны, Perfil (профиль) и Utilizador (на английском языке User) можно идентифицировать по nif и UserID в указанном порядке.Как вы можете видеть, у меня есть Внешний ключ, который делает таблицу Profile в таблице User, во втором случае необходимо объявить 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)
);