【问题标题】:Better way to store hierarchical data with known depth?存储具有已知深度的分层数据的更好方法?
【发布时间】:2016-03-08 15:01:21
【问题描述】:

我有一个(实际上非​​常简单)具有树状邻接关系的数据结构。我正在尝试找到一种表示基于电影行业的网络应用程序数据的好方法,该应用程序需要存储有关电影项目的数据。数据包括: project -> scene -> shot -> version - 每个都以“一对多”的方式与前一个相邻。

现在我正在考虑一个简单的邻接列表,但我无法相信它会足够有效地快速检索项目名称,只要给出版本,因为我必须循环浏览另一个表来获得它。 (简化的)布局将是这样的: simple adjacency layout

我在考虑 - 而不是仅引用直接父级 - 引用所有更高级别的父级 (like this),因为我知道层次结构具有固定的深度。这样一来,我就可以使用这些快捷方式通过一个查询来获取我的信息。但这是糟糕的数据建模吗?还有其他方法吗?

【问题讨论】:

    标签: database tree hierarchy data-modeling


    【解决方案1】:

    从规范化的角度来看,这不是好的数据建模。如果您意识到您为项目添加了错误的场景,那么您必须将其以及所有内容移到层次结构中。

    但是……效率对你来说重要吗?你在说多少数据?您需要多快的响应速度?我会说你已经拥有的东西,如果你需要它更快,有一些东西可以定期将数据提取到缓存中。

    【讨论】:

    • 我说的是每年大约 5000 个数据集,呈上升趋势。我知道这不是很多,但让我担心的是渲染需要处理 200 多个版本的概览,这意味着我需要循环遍历所有版本以获取相关数据。一些延迟绝对是可以忍受的,但我担心当它们加起来时会变得非常麻烦的 wordpress-ish 等待时间。不过我没想过缓存!可能是一种方式。
    【解决方案2】:

    尝试一种名为修改前序树遍历的方法:http://www.sitepoint.com/hierarchical-data-database/

    【讨论】:

      猜你喜欢
      • 2015-09-04
      • 1970-01-01
      • 2019-11-05
      • 2013-02-06
      • 2011-01-01
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 2017-03-04
      相关资源
      最近更新 更多