这是我的问题:(使用 MySQL)
我有 2 个实体,分别称为“商店”和“客户”。我在“clients”和“shops”之间还有一个名为“clients_shops”(CakePHP 命名约定)的 M:M 表。我这样做的原因是这是一个 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
到目前为止一切顺利(我认为......)但这是我的问题。假设有第三个表名为“trips”。“旅行”表存储有关个人预订的信息,“客户”将借此预订“商店”提供的“旅行”。这就是我的大脑变得糊状的地方。我应该如何建立这种关系?
是这样吗:
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
。
在此先感谢所有真正阅读了整本书的人!