2017-12-02 105 views
0

第一次在这里发帖,因为我被告知要从这个社区寻求帮助,如果我被卡住了!如何读取ERD中的桥接实体?

我最近被引入到数据库这个学期,我很难把握桥本体,这意味着要抹去多对多的关系。

典型的例子是STUDENT和CLASS之间的关系; 学生可以在很多CLASSES中,而CLASS可以有很多学生。 通过引入ENROLL实体来修复M-M关系。在这里我们会读到:一个学生可以在许多CLASSES中注册,而一个CLASS可能有很多注册的学生,但是每个学生只能在CLASS中注册一次。

就我而言,我试图通过引入一种成分的实体,它看起来像这样来解决,产品和原料的制药公司之间的关系MM问题:

原料1 ----中号。成分中号---- 1产品

我不确定桥是否能够正常工作,因为我无法像解释上面的STUDENT-CLASS一样解释它。

你会如何解释?

+0

欢迎来到Stack Overflow!不幸的是,你的问题相当广泛。当您显示代码时,您会得到更好的响应,例如表和/或实体框架类的DDL。另外,尝试用代码解释你的意思是什么*我无法解释(...)*。 –

回答

0

“桥梁”或“关联”实体的概念来自网络数据建模,并且是一种处理多对多二元关系以及三元关系和更高关系的方式。网络数据建模是一种简单的物理数据模型,它基于将实体表示为记录,并将关系表示为引用/指针。

自20世纪70年代以来,数据的关系模型已经开发出来,它使用关系(表格)来记录多组值(表示业务实体,度量和标签)之间的关系,允许直接表示多对多关系,许多关系和三元和更高的关系。

实体关系模型试图通过区分实体关系和关系关系来在关系模型之上提供更多的概念结构。我的观点与历史是,在现代数据建模中,我们不再解决或擦除多对多(或三元或更高)的关系(除非您使用基于对象关系的映射器或框架网络数据模型)。带有组合键的表格由两个或多个实体键组成,它们直接表示关系,还允许我们处理关系的属性,以及网络数据建模中缺少的另一个功能。

对您而言,在您的Ingredient关系中添加Quantity属性可能会很有用。这里的解释是Raw material涉及一种材料,而不是特定的材料或原材料的选择。学生有身份,原材料一般不会。

请注意,制药公司可能会跟踪特定批次的原材料。