我正在尝试设计企业级数据库体系结构。在ERD级别,我有一个问题。
我的许多表之间都有相互关系。将来可能会有一些发展,我的设计应该灵活并且可以快速收集结果。
最近几天,我创建了一个名为 Node 的父表,并且我所有的功能表都与此表具有一对一的关系。 (功能表是那些保留诸如内容,用户,文件夹,角色等真实数据的人,而不是那些与应用程序生命周期相关的人) 因此,在向每个表添加记录之前,我们必须在 Node 表中添加一个Node,并使用新的NodeId将其添加到辅助表中。
仅Node 表本身具有“多对多”关系。所以我设计了这张表,以保留我所有的关系担忧。
所有其他实体都类似于 User ,并且与Node表相关,如上所示。
问题是:这种设计是否会使我在 NodeAssoc 表上的关系查询更快,还是最好单独保留关系?
答案 0 :(得分:0)
您说:
将来可能会有一些发展,我的设计应该灵活并且可以快速收集结果。
灵活性和性能是两回事。它们有不同的方法来解决它们或解决它们。设计数据库时,必须考虑数据库原理。要记住,规范化非常重要。一对一和多对多的关系在设计上并不常见。在您的情况下,您提到的是一对一关系和多对多关系,对此我感到担心。
可以通过使用数据库视图(查询)来提高灵活性。数据库的结构将来可能会改变,而修改视图的速度也可能非常快。