Вот моя проблема: (с использованием MySQL)
У меня есть 2 сущности, называемые «магазины» и «клиенты».У меня также есть таблица M: M между «клиентами» и «магазинами», называемая «клиенты_шопами» (соглашение по именованию CakePHP).Причина, по которой я так поступаю, заключается в том, что это SaaS-приложение, в котором у «клиентов» может быть много «магазинов», а у «магазинов» определенно будет много «клиентов».
Однако я не хочучтобы дать магазину возможность ОБНОВИТЬ / УДАЛИТЬ «клиентскую» запись, поскольку в действительности «магазин» будет «РЕДАКТИРОВАТЬ / УДАЛИТЬ» этого «клиента» из своих собственных записей, а не из основной таблицы «клиенты», котораяуправляется «клиентами».
В любом случае, используя эту структуру, «магазин» может выполнить запрос к таблице «clients_shops», чтобы получить список своих клиентов, а «клиент» может выполнить запрос, чтобы получить список своих «магазинов».,Пока все хорошо ...
Пока база данных выглядит так:
table.clients
client_id (PK, AI, NN)
table.shops
shop_id (PK, AI, NN)
table.clients_shops
clients_shops_id (PK,AI,NN)
client_id (FK)
shop_id (FK)
ORM выглядит так:
shops hasMany clients_shops
clients hasMany clients_shops
Пока все хорошо (Я думаю ...) но вот мой вопрос.Допустим, есть третья таблица с именем «поездки».В таблице «поездки» хранится информация об отдельных бронированиях, в результате чего «клиент» будет резервировать место для «поездки», которую предоставляет «магазин».Это где мой мозг становится мягким.Как мне установить эти отношения?
Это так:
table.trips
trips_id (PK,AI,NN)
clients_shops_id (FK) [which would contain keys for both the shop and the client]
Или есть лучший способ сделать это, как в другой таблице, использующей clients.client_id
AND clients_shops.clients_shops_id
.
Заранее спасибо всем, кто действительно прочитал все это!