PHP:序列化对象并将它们粘贴在数据库中供以后使用是不是很糟糕?

cjr*_*oth 4 php orm mongodb doctrine-orm mongodb-php

我正在计划和研究我从MySQL到MongoDB的转换,我只是有一个有趣的想法...我有一堆分层对象,我需要存储在数据库中.我目前的方法是在集合中包含一堆嵌入式文档.他们永远不需要被搜索.将序列化PHP对象,将它们粘贴在数据库中,然后在我想使用它们时将它们反序列化为PHP对象是否有意义?另一种方法是使用Doctrine作为我的ORM.

我的编程直觉告诉我这是一个糟糕的设计并且是有限的,但我觉得序列化和反序列化将非常快并且消除了对ORM的需求.

你怎么看?好的设计还是糟糕的设计?

ale*_*ntd 9

在许多情况下,这将被视为糟糕的设计,但如果满足以下所有条件,它可以起作用:

  1. 您无需搜索它们
  2. 您可以接受(可能)有限的查询能力
  3. 您不需要关系完整性或RDBMS强制执行的其他约束
  4. 你知道你永远不需要用不同的语言阅读它们
  5. 您确信在更新类定义时,您将知道如何正确地反序列化,版本和迁移它们
  6. 您确信PHP序列化格式在各个版本中都是稳定的(或者您愿意编写迁移代码,或者它是一个短期项目而您并不关心)
  7. 你愿意接受轻微的性能损失(SELECT+ deserialize()会慢于SELECT)

  • 似乎所有这些条件都可以将它们放在文件系统上. (2认同)