为了将数据存储到数据库中,在PHP中使用序列化是一种好习惯吗?
|
我在 php.net中发现了一个关于序列化数据的有趣评论,以便将其保存到数据库中. 它说如下:
我想知道这是否是关于将数据序列化用于数据库目的的标准视图.这意味着有时使用它是否是一种好习惯,或者应该避免使用它. 例如,我被指示最近使用序列化. 在这种情况下,我们必须保存到MySQL表中的数据如下: >汽车品牌. Car info是一个表示版本所有属性的数组,因此它是一个大量可变的属性(在100个属性下).这个数组是要序列化的数组. 我为了使用序列化而给出的主要原因如下:
就个人而言,我更赞同php.net中的评论,而不是最后的断言,但我想在这里有更多关于此的合格意见. 解决方法
我认为这高度依赖于用例.如果有一类客户希望拥有关于所有运行柴油的汽车或汽车的任何其他特定数据的信息(使用燃料似乎最简单).您需要从数据库中获取所有汽车,对其进行反序列化,检查属性并保留列表中包含与客户相关的所有汽车. 示例:我们必须将一些与人员相关的数据从旧客户CMS移动到新客户CMS.而不是将每个属性很好地映射到数据库上,整个信息是旧数据库中的单个字符串.因此,我们不必使用适当的数据库结构,而是需要使用大量的regex-foo来将数据再次转换为适当的结构.当然,这是一项昂贵的(包括货币和工作负载)任务.在这种情况下,问题并不是那么大,因为数据量是可管理的.但想象同样的情况有数百万行,而不仅仅是一个字符串…. 您发布的评论仅涉及IMO的数据结构.我同意,存储这些并不是很好也不是很有效.在某处输入拼写错误或添加语言的其他部分不知道的新属性会容易得多.这迟早会引起问题. 另一方面,存储一些更容易移植的配置可能是序列化数据的好例子.您可以争辩说外部设置文件对于这种情况更为理想,但这将高度依赖于案例/哲学/客户/ …… TL; DR在大多数情况下,使用适当的模式迟早会有利于整个开发,速度明智和复杂性(因为我更喜欢阅读许多表格描述而不是巨大的,神秘的字符串).可能存在一些用例,其中序列化数据是可接受的,因此如果这是好的或坏的做法给出有限的答案并不那么容易和高度依赖. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL Server 利用复制功能实现与Oracle数据库同步示例
- sql-server – 作为一名DBA,我将如何从Oracle转换到SQL Ser
- SQL Server:舍入十进制数并转换为int(在Select中)
- SQL Server -- 回忆笔记(一):初见数据库
- SQL Server中通配符的使用示例
- sql-server – 与节点js的SQL Server连接
- sql-server – 使用GUID作为主键修复数据库设计的最佳解决方
- sql-server – Varchar列:Nullable与否
- 数据库设计 – 数据库设计 – 多个查找/枚举表或一个大表?
- sql – 为什么Slick在调用take()方法时会生成子查询
