Теперь у меня есть 3 таблицы:
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)
);
Контекст: A salarie
может иметь разные experience
с, а consultant
может иметь разные experience
с.Но salarie
и consultant
- это разные роли.
Я думаю, что я должен изменить таблицу experience
, потому что она имеет два столбца salarie_id int(11), consultant_id int(11)
.
Что мне делать?
Редактировать:
Я думаю, что это отношения один-ко-многим.Потому что один консультант / салари может иметь столько же опыта, а один опыт принадлежит только одному консультанту / салари.Я прав?
Но я думаю, что опыт работы с таблицами не должен содержать столбцы salarie_id int (11) и consultant_id int (11) одновременно.
Как вы думаете?
И если это отношения многие ко многим.Как насчет краткого последующего проектирования?
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
}
Спасибо большое.