我正在开发一个多用户任务管理器应用程序,但我偶然发现了数据库架构设计。我有用户表,类别,当然还有任务表。每个任务只属于一个类别。所以用DDL语言我需要一对多的#34;类别和任务之间的关系,对吗?我几乎可以肯定我需要"一对多"用户和任务实体之间的关系。 (如果我错了,请纠正我)。至于"类别 - 用户"关系,在这里,我认真考虑两个选项,我需要你告诉我哪一个是正确的,为什么:
"多对多"关系,即用户可以有许多类别,反之亦然;
"一对多"每个类别只能与一个用户相关的关系。在这种情况下,在类别表中将有大量具有相似名称的行,例如" work"," family"等等(因为在类别方面难以想出一些新的和原创的东西),这些东西只会因用户而异。列值。
在这种情况下,什么方法很常见?
答案 0 :(得分:2)
这是一个棘手的问题,因为这两种方法都有优势。您可能需要更好地定义问题以及您想要完成的任务。
我正在开发一个类似的项目,其结构如下:
此处您的问题又回来了:用户如何组织待处理的任务?
user-categories
表,其中包含类别信息和用户表的外键根据我的经验,您应该推迟此类别决定并询问您的用户;他们会指出你正确的方向。
您也可以简单地创建user-catogories
表,因为它比替代方案更灵活,并忽略数据重复。使用与用户建立多对多关系的基本类别列表可能不是一个好主意,因为用户可以决定重命名一个类别,所有其他用户都会受到此操作的影响。