数据库中的多个项目

时间:2011-05-03 22:10:05

标签: mysql xml cakephp

HI,

我有一个用户创建的步骤列表,在此列表中我有多个类别。

例如

<ul id="thelist">
<li class="a">step a1</li>
<li class="a">step a2</li>
<li class="b">step b1</li>
<li class="c">step c1</li>
</ul>

如何将此信息存储在数据库中。

我现在正在尝试的是:

User_Id -> created by User
list_Id -> Unique Id of the list
List_step_a -> matched by list Id 
list_step_b -> Matched by List Id
List_step_c -> Matched by List ID 

所以我应该使用多个表 例如:

table_list_id
list_step_a
list_step_b
List_step_c

或者有更好的方法将列表存储在数据库中,这样我就更容易退出。

任何帮助将不胜感激。 有人能指出我至少正确的方向。

P.S抱歉英语。

其他信息: 我已设法在XML中创建此信息。在那里我可以在数据库上加载XML文件UserSpecific。

我也试图在Cakephp中创建它。

2 个答案:

答案 0 :(得分:2)

我会把它分成2个表(不包括给定要求的用户表)

CREATE TABLE lists (
`id` INT(11) PRIMARY KEY,
`user_id` INT(11) // or whatever it is in the users table
`name` VARCHAR(255) // the name of the list
);

CREATE TABLE list_items (
`id` INT(11) PRIMARY KEY,
`list_id` INT(11) // links a list item to a list
`name` // name of the list item
);

使用正确的关系加入这些模型将为您提供用户创建的列表以及该列表中的所有项目。希望这会有所帮助。

答案 1 :(得分:0)

为“步骤”创建一个表:

CREATE TABLE steps (
`id` INT(11) PRIMARY KEY,
`user_id` INT(11) [or CHAR(36)],
`order` INT(11),
`name` VARCHAR(10)
);

然后用步骤填充它。然后当你需要这些步骤时,只需将它们拉出来:

$this->Step->find('list', array('conditions' => array('Step.user_id' = $user_id), 'order' => array('Step.order')));

按照出现的顺序显示它们。