我需要为客户和供应商的系统设计数据库,但它们都与名为用户的实体相关联,其中每个用户是客户还是供应商。 问题是供应商与客户不包含的其他实体相关。 那么如何设计这样的数据库?
答案 0 :(得分:0)
其他实体将Vendor的ID存储为外键。并且供应商和客户无论如何都不会在同一个表中 * ,所以这两个人的ID可能不会同时使用。
此外,要添加,如果您选择的数据库允许,可以将用户所需的外键作为添加/编辑触发器进行管理。这样,您可以确保用于这些相关实体的供应商ID不是链接到客户的用户ID。 (...WHERE userid NOT IN (SELECT userid FROM users WHERE customer = TRUE)
)
* 客户和供应商拥有不同的属性/字段,因此不应位于同一个表中。
答案 1 :(得分:0)
您可以让供应商和客户与用户表建立关系。
user
===========
userId
name
vendor
===========
vendorId
companyName
userId
customer
===========
customerId
source
userId
然后,您可以从同一个表链接到客户和供应商,但他们仍然可以在用户表中共享相同的公共数据。事实上,客户也可以是供应商。
答案 2 :(得分:0)