2013-05-05 88 views
-2

我已经开始在php中使用待办事项列表应用程序。我之前没有在关系数据库上工作过,所以我对我的数据库的结构感到困惑。我想保持简单。为我的待办事项列表应用程序创建表

这是我的计划:

  • 用户 U_ID, 用户名, 密码, 电子邮件

  • 任务 T_ID, TASK_NAME, 描述, U_ID参考用户表

  • 列表 l_id, LIST_NAME, ?

我的困惑的主要原因是

  1. 如何连接列表和任务是什么? //每个用户将能够创建多个列表,例如:家庭,个人,办公室,家庭工作等。

  2. 什么是连接用户和列表的最佳方式? //每个用户可以有多个任务的多个列表,所以如何管理这个。

+0

使用一个框架,一个ORM,例如http://symfony.com – 2013-05-05 13:28:59

+0

我可以在任何时候使用ORM,但程序员应该能够做这样那样的东西,而无需使用框架。 – Mohit 2013-05-05 13:47:31

+0

公平点。程序员也知道寻找一个SQL教程...(而且,FWIW,问题读起来就像从第1年的CS学生的功课如果是你的话,我会更新我的建议:学会做这个东西使用ORM,然后深入血淋淋的细节,并了解下面的内容。) – 2013-05-05 13:52:39

回答

0

要知道列表中的所有任务,如果任务可以属于一个或多个列表,则需要一个关系表。

  • 用户U_ID,用户名,密码,电子邮件//用户可以有零或一个或多个列表

  • 任务T_ID,TASK_NAME,说明//一个任务可以属于零个或一个或多个名单

  • 列表L_id,LIST_NAME,U_ID //列表可以属于一个且只有一个用户

  • Lists_Tasks T_ID,L_id​​ //一个任务可以属于一个或多个列表

让所有的任务形成一个列表

SELECT T.* FROM Tasks AS T 
JOIN Lists_Tasks AS L_T ON T.t_id = L_T.t_id 
WHERE L_T.l_id = id_from_the_list 

让所有的名单从用户

SELECT * FROM Lists WHERE U_id = id_of_user 
0
  1. N:M关系表:该列表与一个任务
  2. 连接每个列表可以具有U_ID字段。当多个用户可以拥有相同的列表,然后做N:M的关系,也

例如为N:M关系:

list_task_relation:LIST_ID,TASK_ID

0

保持U_ID是你列表表。

此外,保持l_id在任务

阅读MySQL Tutorial你往前走了。

相关问题