真正的原因是规范化,您将这样做破坏了第一个规范形式。
但是,在许多情况下,可以考虑违反正常形式。您要处理多少个字段,它们都是布尔值?
将序列化为字符串的数组存储在数据库中将具有以下缺点(以及其他缺点):
- 当需要更新设置时,必须首先从数据库中提取当前设置,反序列化阵列,更改阵列,序列化阵列并更新表中的数据。
- 搜索时,您将不能仅询问数据库给定用户(或一组用户)是否已禁用或启用给定设置,因此您将没有任何搜索机会。
相反,您应该真正考虑使用其他表中的一对多关系以所需记录创建另一个表的选项。因此,您将没有30个空字段,但每个偏离默认值的选项只能有一行(请注意,此选项也有一些缺点,例如,如果更改默认值)。
总而言之:我认为您应该避免序列化数组并将其放入数据库中,至少如果您只在乎上述缺点的话。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)