【发布时间】:2016-05-23 23:54:55
【问题描述】:
下一个问题是关于学校的作业:
我必须制作一个像plaxo 这样的网络应用程序,其中有用户并且每个人都有自己的议程。我的应用程序的要求比 plaxo 的要简单得多。我的只会有按类别分组的联系人和按其状态分组的已完成或待处理的任务,以及其他典型功能。
我怀疑是 sql 模式。这将是我会选择的模型:
- 用户(ID、用户名、密码、姓名、姓氏、电子邮件)
- 类别(ID、名称)
- 联系人(id、姓名、地址、电话、电子邮件、id_categories、id_users)
- contacts_person(id, lastname, id_contact)
- contacts_organization(id, 商标, id_contact)
- 任务(id、日期、小时、描述)
- tasks_contacts(id_tasks, id_contacts)
加粗的字段是外键。 我不确定这个模式是否可以,我不这么认为。 如果不是请告诉我,
______________________________________________________________________
编辑@Strawberry 评论后:
好的,假设我将模型更改为这个:
- 类别(ID、名称)
- 联系人(ID、姓名、电子邮件)
- contacts_user(用户名、密码、id_contacts)
- contacts_person(姓氏、地址、电话、id_contacts)
- contacts_organization(商标、地址、电话、id_contacts)
- 任务(ID、日期、小时、描述)
- tasks_contacts(id_tasks, id_contacts)
从 contacts_user、contacts_person 和 contacts_organization 中取出 id 字段,因为我认为考虑到 id_contacts 将是唯一键,这是无稽之谈。
我将添加更多信息:
- 用户表是用户注册时存储的数据。
- 类别用于对联系人进行分组。例如:John、Luis 和 Anna 可以属于“家庭”类别,因为他们是熟人。
- 每个联系人只能属于一个类别。
- 有两种类型的联系人,组织和人员。它们之间的区别在于个人没有商标,组织没有姓氏。
- 每个任务都必须有一个提醒日期和时间。不知道有没有任务 是西班牙语“recordatorio”中最好的英语翻译, 但 plaxo 似乎是这么称呼的。
- 每个联系人可以关联多个任务或提醒,并且每个任务可以关联多个联系人。
希望我说得够清楚。
【问题讨论】:
-
试图避免这种情况。在哪里?我很难应用规范化概念。
-
感谢您的帮助@Strawberry。考虑到您写的内容,我已经更新了问题。
-
好吧,你是对的。我应该考虑列出一些要求,下次我会