将递归数据存储在一个或两个表中是否更好?

时间:2013-11-23 21:43:13

标签: mysql sql

目标:对于简单的待办事项应用程序,需要存储任务和可能的子任务(模型1)。

让一个表使用递归关系或使用两个表是“更好”吗?您认为哪些优点/缺点?对性能,可用性等的正面/负面影响。以这种方式使用递归方式是否正确?

模型1:两个表中的任务子任务不需要更多的子任务级别。

enter image description here

模型2:一个表中的任务子任务。顺便说一下,这个设计是否具有无限的子任务级别(除技术bounderies之外)?任务的子任务,子任务-...

enter image description here

1 个答案:

答案 0 :(得分:1)

我不确定你为什么以这种方式形成你的问题,让你感到困惑 数据库的典型示例是存储员工的示例。在employees表中,您还存储经理,因为经理也是员工。所以你所描述的模型2并不是“奇怪”的东西 自联接是一种常见的查询 尝试以一种方式定义表格,使您的查询尽可能简单,并且您的模型易于理解和扩展 在您的情况下,只有在每个子任务具有其他任务不具备的额外信息时,才应定义第二个表 在您描述的模型1中,您只需复制主表的列。这不是一个好的设计IMO 据我所知,模型2符合您的要求。