我正在修改一个旧的多租户应用程序,其中购物车功能将多个供应商和多个客户存储在同一个数据库中。一个供应商的一些客户可能是不同供应商的客户。一些供应商实际上可能是另一个供应商的客户。
我目前有一个带有主键的超级类型“party”的表,一个带有主键(references )party_ID
的子类型“company”的表和一个带有主键的“vendor”角色的表(references )。我还有一个联结表,“客户端”,其复合主键为and 。company_ID
party_ID
vendor_ID
company_ID
vendor_ID
party_ID
我的问题是“订单”表应该如何引用供应商和客户表?我的第一个想法是该表应该有一个复合主键vendor_ID
,client_ID
和order_ID
(order_ID
可以是整个表的自动增量或顺序 per vendor_ID + client_ID
) 但这似乎有点可疑,因为有三个属性组成了键......
有没有人对这个话题有任何见解?大多数“购物车”只与一个供应商打交道,因此订单表只是client_ID
作为外键列出。
谢谢!