我有一个(实际上非常简单)数据结构,它具有树状邻接。我试图找到一种很好的方法来表示基于电影行业的网络应用程序的数据,该网络应用程序需要存储有关电影项目的数据。数据包括:
project -> scene -> shot -> version
- 每个都以“一对多”的方式与前一个相邻。
现在我正在考虑一个简单的邻接列表,但我很难相信只要版本,快速检索项目名称就足够了,因为我必须循环通过另一个表得到它。 (简化)布局如下: simple adjacency layout
我正在考虑 - 而不是仅引用直接父级 - 引用所有更高级别的父级(like this),因为知道层次结构具有固定的深度。这样,我可以使用这些快捷方式只用一个查询来获取我的信息。但这是不好的数据建模吗?还有其他方法吗?
答案 0 :(得分:0)
从标准化的角度来看,这不是一个好的数据建模。如果您意识到将错误的场景放入项目中,则必须将其移动到层次结构中。
但是......效率对你很重要吗?你在谈论多少数据?你需要多快的回复?我会说你已经得到了什么,如果你需要更快,那就定期将数据提取到缓存中。
答案 1 :(得分:0)
尝试一种名为修改预订树遍历的方法:http://www.sitepoint.com/hierarchical-data-database/