Maintenant, j'ai 3 tables qui sont:Schéma pour plusieurs à MySQL?
CREATE TABLE IF NOT EXISTS experience(
experience_id int(11) NOT NULL AUTO_INCREMENT,
salarie_id int(11),
consultant_id int(11),
post varchar(255),
entreprise_name varchar(255),
start_time varchar(255),
end_time varchar(255),
description varchar(10000),
PRIMARY KEY(experience_id)
);
CREATE TABLE IF NOT EXISTS salarie(
salarie_id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255),
PRIMARY KEY(salarie_id)
);
CREATE TABLE IF NOT EXISTS consultant(
consultant_id int(11) NOT NULL AUTO_INCREMENT,
nom varchar(255),
PRIMARY KEY(consultant_id)
);
Le contexte: Un salarie
peut avoir différentes experience
s et consultant
peuvent avoir différentes experience
s. Mais salarie
et consultant
sont des rôles différents.
Je pense que je devrais modifier experience
table, car il a deux colonnes salarie_id int(11), consultant_id int(11)
.
Que dois-je faire?
Edit:
Je pense qu'il est un à plusieurs. Parce qu'un consultant/salarie peut avoir autant d'expériences, et une seule expérience appartient à un consultant/salarie. Ai-je raison?
Mais je pense que l'expérience table ne doit pas contenir les colonnes salarie_id int (11) et consultant_id int (11), en même temps.
Qu'en pensez-vous?
Et si c'est une relation plusieurs-à-plusieurs. Qu'en est-il du breif suite à la conception?
CREATE TABLE IF NOT EXISTS consultant{
c_id int(10) NOT NULL AUTO_INCREMENT,
primary key(c_id)
}
CREATE TABLE IF NOT EXISTS salarie{
s_id int(10) NOT NULL AUTO_INCREMENT,
primary key(s_id)
}
CREATE TABLE IF NOT EXISTS experience{
e_id int(10) NOT NULL AUTO_INCREMENT,
primary key(e_id)
}
CREATE TABLE IF NOT EXISTS salarie_experience{
se_id int(10) NOT NULL AUTO_INCREMENT,
s_id int(10),
e_id int(10),
primary key(se_id),
foreign key(s_id) references salarie(s_id) on delete cascade,
foreign key(e_id) references experience(e_id) on delete cascade
}
CREATE TABLE IF NOT EXISTS consultant_experience
ce_id NOT NULL AUTO_INCREMENT,
c_id int(10),
e_id int(10),
primary key(ce_id),
foreign key(c_id) references consultant(c_id) on delete cascade,
foreign key(e_id) references experience(e_id) on delete cascade
}
Merci beaucoup.
Pouvez-vous donner un exemple d'une ligne dans salarie? – chelmertz
Que voulez-vous dire? –
Cela n'a pas de sens pour moi qu'une expérience puisse appartenir à plus d'un consultant ou salaire. Est-ce vraiment ce que tu veux? –