0

我很难找到创建数据库的最佳解决方案。我有 3 个实体:餐厅、供应商和子供应商。每个餐厅都可以向任何供应商订购。如果供应商有分供应商,餐馆直接向分供应商之一订购,但必须知道父供应商才能获得信息。

目前我有:

Restaurant (idRestaurant,nameRestaurant,otherStuff,...);
Supplier (idSupplier,nameSupplier,address, phone, ...);
SubSupplier (idSubSupplier, #idSupplier, nameSubSupplier, address, phone,...) ;

但供应商和子供应商具有完全相同的属性(如 20),只是子供应商链接到父供应商。

我真的不知道如何正确地做到这一点,因为供应商和子供应商几乎有所有共同点,我发现创建 2 个不同的表是重复的。

这是一个好的解决方案吗?什么是最好的?

4

3 回答 3

1

子供应商仍然是供应商,因此您不应为其创建新表。您需要第三张表来建立两个供应商之间的父/子关系。“子供应商”是供应商的子代。例如:

Restaurant (idRestaurant,nameRestaurant,otherStuff,...);
Supplier (idSupplier,nameSupplier,address, phone, ...);
SupplierChild (idParentSupplier, idChildSupplier)
于 2013-05-30T08:21:06.860 回答
0

为什么不为供应商和子供应商提供一张桌子;具有可空部分“兔子耳朵”关系。然后,在订购时,它只是一个左连接来查找父级(如果有的话)。

于 2013-05-30T08:20:16.890 回答
0

您可能希望将一列(superSupplier)添加到表 Supplier 中,并将 ID (外键)引用到供应商,所以如果您告诉供应商谁是它的超级供应商并且如果值为 null,那么这是一个普通的供应商。

于 2013-05-30T08:20:36.873 回答