MYSQL数据库结构-数组


MYSQL Database Structure - Arrays?

我读过很多不应该在mysql数据库中存储数组的地方。所以我想我应该问我该怎么做:

我正在用php/mysql编写一个基本的任务管理应用程序,我想拥有项目和任务。任务是单个对象,其中项目是包含多个任务的对象。所以我已经有了任务,我有一个任务表,其中有id、name、dueDate列。我的下一步是项目。

我的计划是创建一个包含id、name、dueDate和taskID列的项目表。taskID列可能包含一个任务ID数组,也可能只是一个带有逗号分隔符的字符串。

有什么建议吗?

这在MySQL中被称为一对多关系。你会有一些任务持有他们被分配到的项目的id。因此,要找到与项目相关的任务,你只需查询所有持有项目id的任务。这听起来对吗?

任务(id,name,dueDate,ProjectID)项目(id,name,dueDate)

ProjectID列是外键的和,而Proejcts的表id列是另一个。

如果每个ID/name记录可以有不同数量的任务ID,那么有两个选项。第一种是使用XML而不是SQL。第二个是创建两个表。上面有id、名称和截止日期,然后是一个只有id和taskID的秒。第二列中的id是表1中引用id的外键,taskID是单个taskID。例如:

表1:

id | name | dueDate
-------------------
1  | bob  | '2012-08-16'
2  | fred | '2012-08-17'

表2:

TableID | TaskID
-----------------
1       | 1
1       | 2
1       | 3
2       | 1
2       | 2