gpt4 book ai didi

mysql - 使用 CakePHP+MySQL 存储数组的替代方案

转载 作者:行者123 更新时间:2023-11-29 14:48:11 24 4
gpt4 key购买 nike

我正在开发一个网站,用户可以在其个人资料中保存项目列表(数组)(他们也可以在同一网站中找到这些项目并拥有自己的 ID)。

这是我迄今为止在类似情况下使用的方法:- 在数据库的用户表中创建一个“文本”(字符串)字段,并保存以逗号分隔的项目- 要读取该字段,请使用 explode 方法获取 CakePHP 中的数组,然后使用它- 要将数组保存到数据库,请使用implode方法将其转换为字符串并能够将其存储在字段中

我不喜欢这种方法的是,处理这些列表(添加项目、删除项目...)可能会变得非常复杂,而且您无法真正直接访问这些项目,总是需要一些预处理或进行后处理来制作。

例如,为了更轻松地查看一个用户列表中的特定项目并查找列表中具有相同项目的其他用户。

CakePHP+MySQL 中有没有更好的处理数组的方法?我读过有关 serialize()/unserialize() 的内容,但我认为与其他方法相比,这不会产生很大的差异......

提前非常感谢您的任何想法!

最佳答案

一定要使用表,按照 Kristian Antonsen 的建议,创建一个 items 表,然后在您的用户模型中创建一个 hasManu 关系,如下所示:

class User extends AppModel{
$hasMany = array(
'Item'
);
}

或者 HABTM 关系:

class User extends AppModel{
$hasAndBelongsToMany = array(
'Item'
);
}

使用表单助手为项目创建输入。

希望这有帮助。

关于mysql - 使用 CakePHP+MySQL 存储数组的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com