#mysql #sql #database-design #foreign-keys #create-table
#mysql #sql #database-design #внешние ключи #создать таблицу
Вопрос:
Я создаю базу данных для отслеживания фотосессий для компании, занимающейся фотографией домашних животных.
Я построил три таблицы: клиентскую таблицу со всей связанной информацией о клиенте, таблицу домашних животных для отслеживания нескольких домашних животных для каждого клиента.
Последняя таблица — это то, где у меня возникают проблемы. В нем будет запись для каждой фотосессии. У фотосессии будет один клиент, но может быть несколько домашних животных, и не все домашние животные могут принадлежать клиенту.
Как я могу структурировать таблицу, чтобы учесть это?
Комментарии:
1. Имейте 4-ю таблицу, которая представляет собой сопоставление «многие ко многим» между
pet
иphoto_session
.2. Спасибо, Рик. Это именно то, что я сделаю.
Ответ №1:
Я бы рекомендовал две таблицы: одну для хранения фотографий, а другую для отношений «многие ко многим» между домашними животными и фотографиями.
-- you already have these two tables
create table clients (
id int primary key,
...
);
create table pets (
id int primary key,
client_id int references clients(id),
...
);
-- create those
create table photo_sessions (
id int primary key,
client_id int references clients(id),
...
);
create table photo_sessions_pets (
id int primary key,
photo_session_id int references photo_session(id),
pet_id int references pet(id)
);