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

Mysql 将递归数据存储在一个或两个表中更好吗?,mysql,sql,Mysql,Sql,目标:对于简单的toDo应用程序,需要存储任务和可能的子任务(模型1) 使用一个使用递归关系的表还是使用两个表“更好”?你认为有利/不利?对性能、可用性等的积极/消极影响。这样使用递归方法是否正确 模型1:任务和子任务在两个表中。不需要更多的子任务级别 模型2:任务和子任务在一个表中。顺便说一句,这种设计是否有无限的子任务-级别(除了技术边界)?任务子任务子任务- 我不知道你为什么用这种方式提问,还有什么让你困惑。 数据库的一个经典示例是存储员工的数据库。在employees表中,您还可以存储

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

使用一个使用递归关系的表还是使用两个表“更好”?你认为有利/不利?对性能、可用性等的积极/消极影响。这样使用递归方法是否正确

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

模型2:任务子任务在一个表中。顺便说一句,这种设计是否有无限的子任务-级别(除了技术边界)?任务子任务子任务-


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

据我所知,模型2适合你正在尝试做的事情。

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

据我所知,型号2适合您的要求。

不要让它比Nessery更难!一个任务就是一个任务,没有区别,只有可能的父任务。所以坚持模型2。你必须修改模型2。你不需要子任务id,你需要父任务id。@DanBracuk,thx,你说得对。不要让它比Nessery更难!一个任务就是一个任务,没有区别,只有可能的父任务。所以坚持模型2。你必须修改模型2。你不需要子任务id,你需要父任务id。@DanBracuk,thx,You'right。嗯,我的第一个设计非常不同(更多属性)。然后我整理了一下,其他的想法,瞧,子任务就像任务一样。因为我以前从未做过自我加入,所以我有点担心,因为它看起来很优雅,所以我监督了一些事情。无论如何,你关于任务和子任务之间不同信息的争论帮助我看清了这一点。应用程序的功能仍然是开放的,需要在任务或子任务中存储什么样的信息。此外,子任务的深度还不清楚。目标是让它尽可能简单。非常感谢。嗯,我的第一个设计非常不同(更多属性)。然后我整理了一下,其他的想法,瞧,子任务就像任务一样。因为我以前从未做过自我加入,所以我有点担心,因为它看起来很优雅,所以我监督了一些事情。无论如何,你关于任务和子任务之间不同信息的争论帮助我看清了这一点。应用程序的功能仍然是开放的,需要在任务或子任务中存储什么样的信息。此外,子任务的深度还不清楚。目标是让它尽可能简单。非常感谢。