MySQL соединить 2 разных стола с третьим - PullRequest
0 голосов
/ 03 февраля 2020

У клиента или провайдера (clients_table, provider_table) может быть много телефонных номеров, поэтому я создал третью таблицу (phone_book) для хранения телефонных номеров (стационарный, мобильный), но я застрял в том, как создавать / управлять отношениями между 3 таблицами. Как лучше всего справиться с этой ситуацией?

Спасибо

1 Ответ

0 голосов
/ 03 февраля 2020

Я не знаю, насколько похожи / не похожи таблицы клиентов и провайдеров, или, может быть, они лучше подходят для одной таблицы. Я объясню общий способ обработки вашего требования. Рассмотрим следующие определения таблиц:

clients_table (id, name, address)
phone_book (id, number)
clients_phone (client_id, phone_id)
    (client_id -> clients_table, phone_id -> phone_book)

То есть создайте новую таблицу junction с именем clients_phone, которая отслеживает отношения между клиентами и их телефонами. Обратите внимание, что с этим дизайном нам не нужно никуда повторять информацию о телефоне. Он появляется только один раз в таблице phone_book.

Приведенный выше дизайн, возможно, придется немного изменить, учитывая, что также имеется таблица поставщиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...