目前我有一篇文章,其中包含与其他元素的各种 M:N 关系,问题是这些元素可以并且将会长大,并且不希望在我的数据库中有那么多表。
这是为未知数量的元素建立单一关系 M: N 的正确方法
目前我有一篇文章,其中包含与其他元素的各种 M:N 关系,问题是这些元素可以并且将会长大,并且不希望在我的数据库中有那么多表。
这是为未知数量的元素建立单一关系 M: N 的正确方法
对于未知数量的元素,这是建立单一关系 M: N 的正确方法
为每个 M:N 关系设置单独的联结表并没有什么特别的错误。
话虽如此,您可以以更通用的方式处理这些关系,同时通过使用继承1来减少表的数量:
有关继承概念的更多信息,请在ERwin 方法指南中搜索“子类型关系” 。有关如何在关系数据库中实现继承的一些提示,请查看:
1阿卡。类别、子类化、子类型化、泛化层次...
如果所有元素都具有相同的属性您可以将它们全部保存在一个带有额外列(最好枚举)的表中以区分它们。
但是查看图像您提供的它们可能没有相同的属性,因此以某种方式强制它们位于一个或几个表中将是困难且低效的。
您可以创建的表的数量没有限制,我不知道为什么您应该避免为每个关系创建一个新表,因为它应该是。