这是我的问题:(使用MySQL)数据库结构:此结构是否适用于m:m?
我有2个实体称为'商店'和'客户'。我还有一个名为'clients_shops'的'客户'和'商店'之间的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
和clients_shops.clients_shops_id
另一个表。
预先感谢任何人,实际上读这整个事情!
假设你有一个客户A和店铺一趟X - 必须A和X是clients_shops并且如果从clients_shops必须将其从旅行随之删除,会发生什么? – Mark 2011-03-18 19:08:26