这与 这个问题. 。这让我想到,例如, 这本书. 。而不是两者的孩子 [Agriculture][Other], ,在树上 [Books > Catalogs > Agriculture][Business & Industrial > Agriculture & Forestry > Other], 分别,它可以独立存在,将这些级别作为标签。

在像 eBay 这样的网站中,列出所有记录的性能成本是否会降低? 标签 [AgricultureCatalog] 远远超过列出所有记录的重要性 [Books > Catalogs > Agriculture] 类别, ,前提是数据已正确标准化?

我意识到这可能是一个愚蠢的问题(不,我不认为我正在为下一个 eBay 编程),但我无法动摇这种好奇心,更糟糕的是;这 诱惑;所以我宁愿现在听起来很愚蠢并充分理解我的误解,也不愿以后做一些愚蠢或毫无意义的事情。

有帮助吗?

解决方案

当关系模型第一次出现,所述显性数据库范例是分层;然后(如仍是如此)的分层更有效,因为,本质上,可以用部分prejoined查询开始。

但是,只有基于一个静态分层结构。当你想弯曲的数据视图来从另一个根尺寸很大的困难出现了。 (这是一个强烈争论的问题关系数据库能否永远是实际使用足够的效率;很快被摩尔定律的孜孜不倦的努力解决)

想想谁拥有它包括产品订单的客户;一个层次。不可避免地,你会希望也能够考虑产品,该产品从客户的订单被发现;整个其他层次。和谁产生,从客户的订单销售人员的地区;或具有客户那个地方订单。

关系数据库得到你与大致相等的效率来重建您的随意的层次结构的能力;仅在嵌入多个正交层次结构的成本其他数据库格式提供一个好处;在这种情况下改变的成本,添加,或删除数据变得天文数字。

其他提示

关系模型的主要目的是为了防止重复。分层数据,而更容易地手动神交,从复制的问题困扰。

使用适合你的数据最好的,而不是做过早优化的模型。

我倾向于建立表象的分层树的出的关系数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top