【问题标题】:What would be the pros and cons of hierarchical data vs. related data, in performance (and categorization)?分层数据与相关数据在性能(和分类)方面的优缺点是什么?
【发布时间】:2010-10-18 10:25:21
【问题描述】:

这与this question 有关。这让我想到,例如,this book。它不是[Agriculture][Other] 的子级,分别位于[Books > Catalogs > Agriculture][Business & Industrial > Agriculture & Forestry > Other] 的树中,而是可以将这些级别作为标签独立存在。

在像 eBay 这样的网站中,使用 标签 [AgricultureCatalog] 列出所有记录的性能成本是否会大大超过在 [Books > Catalogs > Agriculture] 类别中列出所有记录的性能成本? ,只要数据经过适当的标准化?

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

【问题讨论】:

    标签: performance database-design tags hierarchy


    【解决方案1】:

    当关系模型首次出现时,占主导地位的数据库范式是分层的;然后(仍然如此)分层更有效,因为从本质上讲,您可以从部分预连接查询开始。

    但仅基于一种静态层次结构。当您想将数据视图从另一个根维度弯曲时,就会出现很大的困难。 (关系数据库在实际使用中的效率是否足够高,这是一个激烈争论的问题;很快通过认真应用摩尔定律得到解决。)

    想想拥有包含产品的订单的客户;一个层次结构。不可避免地,您还希望能够考虑将在客户订单中找到的产品;整个其他层次结构。以及从客户那里生成订单的区域销售人员;或有下订单的客户。

    关系数据库使您能够以大致相同的效率随意重构层次结构;以嵌入多个正交层次结构为代价的仅在其他数据库格式中可用的好处;在这种情况下,更改、添加或删除数据的成本将是天文数字。

    【讨论】:

      【解决方案2】:

      关系模型的主要目的是防止重复。分层数据虽然更容易手动挖掘,但存在重复问题。

      使用最适合您的数据的模型,而不是过早地进行优化。

      我倾向于从关系数据中构建表现层次树。

      【讨论】:

      • > 使用最适合您的数据的模型,而不是过早地进行优化。我倾向于从关系数据中构建表现层次树。 - 这很有趣,谢谢。
      猜你喜欢
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 2010-11-02
      • 2017-03-31
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      相关资源
      最近更新 更多