在数据库中保存和编辑数组的最佳方法是什么(json,serialize或text)

Roc*_*tar 0 php mysql arrays

我想向我的客户添加信息,例如他们有权执行的操作数量

我在另一篇文章中读到,我们可以使用serialize()or json_encode()函数将数组保存在数据库中

但为什么不直接以这样的文本格式保存它:["view", "edit", "delete", "save"]

使用json和serialize函数,如何添加或删除数据? 例如,使用json_encode,我必须制作一个数据json_decode()并制作一个unset()或者array_push()然后json_encode()呢?或者有更好的方法吗?

Que*_*tin 5

我在另一篇文章中读到,我们可以使用serialize()或json_encode()函数将数组保存在数据库中

这不完全准确.您可以使用这些函数将数组转换为字符串.然后,您可以将字符串保存在数据库字段中.

这不是一个好主意,因为它意味着您无法合理地搜索阵列中的数据.您应该利用数据库的关系性质并建立真实的(例如多对多)关系.

但为什么不直接以这样的文本格式保存它:["view","edit","delete","save"]?

因为数组不是文本格式(如果是文本,那么这就是json_encode给你的输出).

使用json和serialize函数,如何添加或删除数据?例如,使用json_encode,我必须创建一个数据json_decode()并生成一个unset()或array_push()然后生成json_encode()?

或者有更好的方法吗?

请参阅前面关于关系的说明.