我正在研究的数据库模型要求我允许一本特定的书可以由一个或多个作者共同编写的场景。我想知道是否使用作者的多值属性正确地表示模型,如我的图表所示:

我还使用了一个广义层次结构的项目,可以是一本书,eBook或杂志格式。我还想知道这是泛化层次结构的合理使用还是冗余使用。
发布于 2022-04-14 00:34:23
您正在使用几种扩展的ERD表示法(EERD)中的一种,并且这些建模技术没有标准化。所以它也取决于你的建模符号。
但据我所知:
作者周围的双椭圆确实表明它是一个多值属性。所以你的表示法很好。然而,多值属性与第一范式(1NF)不兼容。因此,考虑author作为一个单独的实体可能是值得的,特别是如果您想要区分几个同名作者,或者由作者进行有效的搜索。
使用disjoint subclasses ( Item可以是Book、eBook或Magazine )是很好的:
Book,eBook和Magazine继承了Item的属性,这三个类中的两个子类似乎没有使用Magazine。这也很好:如果将其移到项目中,具有不同标识符的杂志也会继承it.paperBook类别的图书实体??。
https://stackoverflow.com/questions/71831318
复制相似问题