我有一个(实际上非常简单)的数据结构,它有一个树样的邻接。我正试图找到一种很好的方式来表示一个基于电影产业的网络应用程序的数据,它需要存储有关电影项目的数据。数据包括:project -> scene -> shot -> version -每一个以“一对多”的方式与前一个相邻。
现在,我正在考虑一个简单的邻接列表,但是我很难相信它将足够有效地快速检索项目的名称,只考虑到这个版本,因为我必须遍历其他表才能得到它。(简化的)布局如下所示:简单邻接布局
我在考虑--而不是仅仅引用直接父级--引用所有更高级别的父级(像这样),因为知道层次结构有固定的深度。这样,我就可以使用这些快捷方式只使用一个查询就可以获得我的信息。但这是糟糕的数据建模吗?还有别的办法吗?
发布于 2016-03-08 15:16:05
从标准化的角度来看,这不是一个好的数据模型。如果你意识到你在一个项目中放错了场景,那么你必须把它和所有的东西移到层次结构中去。
但是..。效率对你重要吗?你在说多少数据?你需要多快反应?我想说的是,如果您需要更快的数据,可以定期将数据提取到缓存中。
发布于 2016-03-09 11:41:15
尝试一种名为修改的预排序树遍历:http://www.sitepoint.com/hierarchical-data-database/的方法
https://stackoverflow.com/questions/35870783
复制相似问题