在sql中添加表之间关系的最佳方法

时间:2014-08-30 09:25:17

标签: sql database

我有四张桌子公司,子公司,表格和货物 每个公司包含几个子公司,每个子公司包含表格 每个表格都包含货物

我需要查询以获取公司,子公司的形式,公司的货物,子公司的货物

我的问题是哪种关系更好?我选择了一个因为我觉得它更容易查询和更快。

  1. 仅添加

    之间的关系

    公司---->子公司------->表格------>货物 Image1

  2. 添加公司与所有三个表之间的关系,子公司与其他两个表之间的关系,以及表单与货物之间的关系。 Image2

1 个答案:

答案 0 :(得分:0)

似乎FormCargo有一个composition associationSubCompanyForm也有一个组合关联,因此应该有一对多的关系它们之间。 到目前为止,您的头号设计似乎更好,但问题是CompanyForm之间的关系是什么?如果SubCompany可以有表单,Company也可以Forms吗? (让Forms成为Company或其SubCompany的一项功能?)如果Company本身不能拥有Forms,那么数字1似乎是合理的设计,但如果它可以,你应该改变一点这样的东西:

Company has a one to many self relation (Sub Company)
Company has a one to many relation with Form
Form has a one to many relation with Cargo   

在此设计中,SubCompany每个Company的父级Company是该公司SubCompany的个人实体