在数据库中保存和编辑数组的最佳方法是什么(json,序列化或文本)

时间:2018-07-26 09:43:58

标签: php mysql arrays

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

我在另一个post上读到,我们可以使用serialize()json_encode()函数将数组保存在数据库中

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

借助json和序列化功能,如何添加或删除数据? 例如,使用json_encode,我必须先创建数据json_decode(),然后先创建unset()array_push(),然后再创建json_encode()?还是有更好的方法呢?

1 个答案:

答案 0 :(得分:5)

  

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

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

这不是一个好主意,因为它意味着您无法明智地搜索数组中的数据。您应该利用数据库的关系性质,并建立真实的(例如many-to-many)关系。

  

但是为什么不直接将其保存为以下文本格式:[“视图”,“编辑”,“删除”,“保存”]?

因为数组不是不是文本格式(如果是文本,则是json_encode为您提供的输出)。

  

使用json和序列化功能,如何添加或删除数据?例如对于json_encode,我必须先创建一个数据json_decode()并先创建一个unset()或array_push()然后再创建json_encode()?

  

或者有更好的方法吗?

请参阅前面有关关系的说明。