好吧,对于wordpress编程来说,这是相当新的,并且实现了所有核心数据,并且插件数据总是被序列化。这是否取消了RDBMS的RELATIONAL方面?而且它甚至不能节省空间,因为大多数时候字符串太长了,而且以这种方式扩展/修改数据更难......
我不明白为什么他们决定这样做,而且我还没有找到任何在线参考资料,说明他们为什么会这样做。
答案 0 :(得分:6)
显然,由于我不是Wordpress的开发者,我不知道他们的确切原因。
但也许他们得出了与我相同的结论:
有时,它不值得。有时,您只想存储一些数据。有时,除了将数据发送回处理代码之外,数据库永远不会对该数据执行任何操作。在这种情况下,当数据永远不会与数据库中的任何其他内容相关时,为什么还需要在数据转储时设计关系数据库呢?
这是个好主意吗?可能不是,它是一个懒惰的,当你需要它时,只需要最少的工作。但是,如果我抓住你使用MySQL来尝试处理序列化列中的数据,我会禁止你上网。
答案 1 :(得分:0)
因为他们并没有真正改变建筑师。这使它向后兼容旧版本的WordPress,它也与旧版本的MySQL和PHP兼容。
作为一名在许多不同的CMS和MVC框架方面拥有丰富经验的长期开发人员,我可以说他们是使用序列化数据的白痴,应该使用JSON。
这是一个糟糕的决定,但它也可以得到尊重。
答案 2 :(得分:-1)
序列化:
PHP数组或对象或其他复杂数据结构无法在正在运行的PHP脚本之外传输,存储或以其他方式使用。 如果您希望将这种复杂的数据结构保留在单个运行的脚本之外,则需要对其进行序列化。
WordPress核心和第三方插件通常将数组或对象序列化,作为在WordPress数据库中存储结构化数据的方式。
数据序列化以提高数据库的性能或效率。而不是为数据创建新表, 或者将数据存储在可能最终会产生浪费的空字段的表中,您可以将所有数据保存在一个字段中的一个字段中。 这样可以节省空间并简化SQL语句。使用PHP的serialize()和unserialize()函数存储和恢复序列化数据。
我认为序列化数据是wordpress功能,开发人员可以在其中存储数据并增强功能,同时节省更多空间和精力,并使用到最终级别。
序列化存在缺点,
您无法对序列化数据运行MySQL查询。 数据必须通过PHP从表中拉出,反序列化,然后使用PHP而不是MySQL进行搜索
在数据可移植性方面,您无法执行简单的搜索和替换过程并更改窗口小部件或插件存储的站点URL,最好使用WordPress Search and Replace Tool或WP Migrate DB进行完整的数据迁移,这些都是由序列化过程存储的