SQL - 从多个引用中查询,或者有更多的关系?

SQL - Query from multiple references, or have more relations?

我认为关系模型应该尽可能简单。将使用 A->B->C->D id 引用(每个 1:n 引用)查询与 'A' 相关的 'D'。 但我在想,是否有人应该使事情复杂化并创建更多关系以节省性能(?),而不是从多个引用中查询?

首先,我假设 C 中的列将被称为 D,而不是 A

其次,您违反了规范化原则之一。值 D 存储在两个地方(在两个表 AC 中),但根据您的描述,它确实意味着一件事。

您的建议是数据模型的严重复杂化。确保 A 引用的 DD 匹配是非常不同的。执行这一点很难。违规成为数据错误。

至于性能,主键上的联接通常非常快。这种连接的链通常不是性能瓶颈。

至于维护,您最终会以非常不同的方式表示相同的结果集。这会使调试代码复杂化。

关系数据库非常灵活,它们肯定支持这样的结构。在某些情况下,这种方法可能会有所帮助(例如,如果有一个并行数据库,其中表上的分区键位于不同的列上)。但是,我不会将其称为最佳实践或普遍推荐。