我需要为类设计一个小型数据库,我使用了以下 ERD 模型:http: //imgur.com/OSYwHp6
并得到以下关系模型:
通过遵循一个类似的类示例,不幸的是我没有足够的声誉来链接。
我的问题是我这样做是否正确,如果是,为什么处理表存在?为什么我不能只从 Animal 中的 AnimalID 绘制到访问中的 AnimalID 的箭头?任何帮助将不胜感激,因为我不完全理解这些设计模型。
我需要为类设计一个小型数据库,我使用了以下 ERD 模型:http: //imgur.com/OSYwHp6
并得到以下关系模型:
通过遵循一个类似的类示例,不幸的是我没有足够的声誉来链接。
我的问题是我这样做是否正确,如果是,为什么处理表存在?为什么我不能只从 Animal 中的 AnimalID 绘制到访问中的 AnimalID 的箭头?任何帮助将不胜感激,因为我不完全理解这些设计模型。
您向我们展示的 ERD 有点令人困惑。Treated 关系表明 Animals 和 Visits 之间的关系是多对多的。也就是说,一只动物可以在多次就诊中得到治疗,而一次就诊可以治疗许多动物。
但是将 AnimalID 包含为访问的属性表明了一些不同的情况,即一次访问只能处理一只动物。
您的 ERD 混合了需求分析和数据库设计的元素。经典 ERD 不包括外键,并且在经典 ERD 图表中将 AnimalID 列为访问的属性是不正确的。相反,Treated 关系的基数将明确显示在图表上。
有了这些基数,就可以确定处理的关系是多对一、一对多、一对一还是多对多。
如果多对多是正确的答案,那么您的设计是正确的。如果多对一是正确答案,那么您的设计过于复杂,您可以将 AnimalID 作为外键存储在 Visit 表中。