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