Mysql 这种模式设计方法正确吗?

Mysql 这种模式设计方法正确吗?,mysql,plaxo,Mysql,Plaxo,下一个问题是关于学校的作业: 我必须制作一个web应用程序,比如,有用户,每个用户都有自己的日程安排。我的应用程序的要求比plaxo的简单得多。我的联系人只能按类别分组,任务只能按其已完成或待定状态分组,以及其他典型功能 我怀疑的是sql模式。这将是我选择的模式: 用户(id、用户名、密码、姓名、姓氏、电子邮件) 类别(id、名称) 联系人(id、姓名、地址、电话、电子邮件、id\u类别、id\u用户) 联系人(id,姓氏,id\u联系人) 联系人/组织(id、商标、id\u联系人) 任务(i

下一个问题是关于学校的作业:

我必须制作一个web应用程序,比如,有用户,每个用户都有自己的日程安排。我的应用程序的要求比plaxo的简单得多。我的联系人只能按类别分组,任务只能按其已完成或待定状态分组,以及其他典型功能

我怀疑的是sql模式。这将是我选择的模式:

  • 用户(id、用户名、密码、姓名、姓氏、电子邮件)
  • 类别(id、名称)
  • 联系人(id、姓名、地址、电话、电子邮件、id\u类别、id\u用户
  • 联系人(id,姓氏,id\u联系人
  • 联系人/组织(id、商标、id\u联系人
  • 任务(id、日期、小时、说明)
  • 任务与联系人(id\u任务id\u联系人
粗体显示的字段是外键。 我不确定这个模式是否正确,我不这么认为如果不是,请告诉我

\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu强>

在@草莓评论之后编辑

好吧,假设我把模型改成了这个:

  • 类别(id、名称)
  • 联系人(id、姓名、电子邮件)
  • 联系人\用户(用户名、密码,id\u联系人
  • 联系人(姓氏、地址、电话、id\u联系人
  • 联系人/组织(商标、地址、电话、id\u联系人
  • 任务(id、日期、小时、说明)
  • 任务与联系人(id\u任务id\u联系人
从contacts\u user、contacts\u person和contacts\u organization中删除了id字段,因为考虑到id\u contacts将是唯一的键,我认为这是胡说八道

我将补充一些信息:

  • 表users用于用户注册时存储的数据
  • 类别用于对联系人进行分组。例:约翰、路易斯和安娜属于“家庭”,因为他们是熟人
  • 每个联系人只能是一个类别的一部分
  • 有两种类型的联系人,组织和个人。它们之间的区别在于,个人没有商标,组织没有姓氏
  • 每个任务都必须有一个提醒日期和时间。我不知道这项任务是否完成 是西班牙语“recordatorio”中对英语的最佳翻译, 但普拉克索似乎这么说
  • 每个联系人可以关联多个任务或提醒,每个任务可以关联多个联系人

希望我说得够清楚。

我建议更改第一个型号,以减少冗余:

数据表

  • 用户(id、用户名、密码、姓名、姓氏、电子邮件)
  • 联系人(id、姓名、姓氏、地址、电话、电子邮件)
  • 组织(id、商标)
  • 任务(id、日期、小时、说明)
  • 类别(id、名称)
关系

  • 用户类别(id\u类别id\u用户
  • 联系人类别(id\u类别id\u联系人
  • 用户联系人(用户idid\u联系人
  • 组织联系人(组织idid\u联系人
  • 任务与联系人(id\u任务id\u联系人
底线:将一个实体的所有数据存储在一个表中,并在只保存外键而不保存额外数据的表中具有实体之间的关系

向其中一个实体添加列不会影响关系


添加更多关系不需要了解相关实体的数据结构。

试图避免这种情况。哪里结果我很难应用规范化概念。Thaks感谢您的帮助@草莓。考虑到你写的内容,我更新了这个问题。好的,你说得对。我应该考虑列出一些要求,下次我会告诉我们的。日期,时间?我不确定那件事@这是任务的定义。这有一个日期,可能还有一个小时,这是特定于应用程序的,我想这里没有要求。我们可以将其组合为
时间戳
持续时间
,这可能是mre合适的,但正如我所说的,是应用程序的东西。