我正在为一个应用程序设计一个数据库,因为我需要将 BUYER (BUYER_ID) 和 VENDOR (VENDOR_ID) 都视为 USER (USER_ID)。我在以下设计中设计了这个逻辑。
用户
用户 ID (PK)、BUYER_ID(FK)、VENDOR_ID(FK)。
我很困惑,这个方法是否好,在考虑以下事情时,
- 买方可以是卖方。
- 卖方也可以是买方。
我已经创建了 USERROLE 表来实现此目的,但是当用户只是买家或供应商时,上述关系表是否有效?这会接受外键为 NULL 吗?
我需要对此进行解释 - “买方或供应商可以下订单,但买方和供应商不能同时下订单”。提前致谢。
在这里摆弄它:http ://sqlfiddle.com/#!15/a76fd/2
假设 the
userId
是指供应商或买方,此设计允许userId
既是买方又是卖方。下订单时,您只需要JOIN
在vendor
和buyer
表上确保userId
两者都不存在。