我需要为一个系统设计一个数据库,其中有Customers和Vendors但它们都与称为Users的实体相关,其中每个用户都是 customer 或 vendor 。问题是Vendors与Customers不相关的其他实体相关。那么我该如何设计这样的数据库呢?
问问题
437 次
3 回答
0
其他实体会将供应商的 ID 存储为外键。而且 Vendors 和 Customers 无论如何都不会在同一个表中*,因此这两个 ID 并不可能同时用于此目的。
此外,要添加,如果您选择的数据库允许,您可以将用户所需的外键作为添加/编辑触发器进行管理。这样,您可以确保用于这些相关实体的供应商 ID 不是链接到客户的用户 ID。( ...WHERE userid NOT IN (SELECT userid FROM users WHERE customer = TRUE)
)
*客户和供应商具有不同的属性/字段,因此不应在同一个表中。
于 2013-04-26T21:38:24.470 回答
0
您可以让供应商和客户与用户表有关系。
user
===========
userId
name
vendor
===========
vendorId
companyName
userId
customer
===========
customerId
source
userId
然后,您可以从同一个表链接到客户和供应商,但他们仍然可以在用户表中共享相同的公共数据。事实上,客户也可以是供应商。
于 2013-04-26T23:00:14.623 回答
0
于 2013-04-27T20:52:52.263 回答