У меня есть вопрос о концепции отношения SQL. У меня есть простой пример.
Человек за столом, страна и я хотим записать историю, где человек жил.
CREATE TABLE person
(
person_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
);
CREATE TABLE country
(
country_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
);
Первое решение:
create table person_live_country
(
plc_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
person_id INT UNSIGNED NOT NULL,
country_id INT UNSIGNED NOT NULL,
FOREIGN KEY (person_id) REFERENCES person (person_id),
FOREIGN KEY (country_id) REFERENCES country (country_id)
);
Второе решение:
create table person_live_country
(
person_id INT UNSIGNED NOT NULL,
country_id INT UNSIGNED NOT NULL,
PRIMARY KEY (person_id, country_id),
FOREIGN KEY (person_id) REFERENCES person (person_id),
FOREIGN KEY (country_id) REFERENCES country (country_id)
);
Какая модель лучше: концепция, производительность, удобство? В будущем я хочу сопоставить таблицы с JPA.
Спасибо.