【问题标题】:Is the PHP serialize a must if I want to store an object or aray to mySQL?如果我想将对象或数组存储到 mySQL,PHP 序列化是必须的吗?
【发布时间】:2017-05-10 18:36:08
【问题描述】:

如果我想将 PHP 对象保存到 mySQL 数据库,我只是想确保是 serialize
我发现一些文章说使用serialize来保持数据的原始形式。
我需要一些解释,因为我只是一个初学者。谢谢:)

【问题讨论】:

  • 通常您只需将一个对象存储在一个(或多个)表中。您确定要将对象存储在列中吗?将其存储为这样的字符串会使使用变得更加困难,因为将事物存储在关系数据库中是为了能够使用存储在那里的数据进行搜索。
  • 实际上我想存储包含一组值的数组数据。那么我应该使用serialize 还是不使用?
  • 如果你只想要输入/输出,序列化就可以了。如果您希望能够搜索或仅访问其中的一部分,请阅读数据库规范化。

标签: php mysql serialization


【解决方案1】:

这是一个没有一个好的答案的问题,非常基于意见。需要记住的几点:

除了要存储在数据库列中的数据之外,保留原始数据是否有用?

您将如何使用这些数据?通常,您会将每个数据存储在其自己的数据库表列中。如果您只保留原始数据“以备不时之需”,您不妨将其以序列化形式存储在单个列中。

你打算如何存储它?我个人不喜欢使用 PHP 序列化格式,而是使用 JSON。这是因为:

  1. JSON 是一种开箱即用可由 PHP 以外的语言解码的格式,这使其更易于移植到其他系统。
  2. 某些数据库类型和版本以 JSON 数据列的形式专门支持 JSON,从而加快处理速度。

【讨论】:

  • 我要存储的数据是一个数组,里面包含一组值,数量非常多。我将在我的程序中用来做一些事情的数据。在将数组存储到数据库中时,使用serialize 是否非常必要?
  • PHP 数组不直接映射到数据库,因此您需要序列化。您使用哪种格式,取决于个人喜好。如上所述,我个人会选择 JSON。
  • 但是。如果您存储的数据始终采用相同的结构并具有固定数量的值,您可能需要考虑将数据存储在单独的列中。例如,用户的名字、姓氏和电子邮件地址应放在各自的列中。通过这种方式,您可以更好地利用数据库索引和 SQL where 子句的强大功能。
猜你喜欢
  • 1970-01-01
  • 2019-12-15
  • 2020-07-16
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多