And*_*ins 3 database orm database-schema
我有一个通过ORM保存到数据库的对象.该对象有一个字符串数组,数组长度可以根据对象而变化.我想知道在数据库中存储String数组的标准做法(例如,我应该将所有字符串存储在一个字段中作为csv等.)?
我猜你有一个MySql,关系数据库.
作为第一种方法,您必须考虑在关系数据库的字段中插入任何类型的组合数据(CSV,JSON serialize()), 这是您应始终应避免的.这是我在大学学习数据库时学到的第一件事.这是因为当您设计数据库时,您的第一个方法应该是 数据库规范化.
非规范化是在寻找性能时常用的东西.为此,您需要在数据库(建模,访问等)方面拥有丰富的经验.这是经验丰富的DBA和商业智能专业人士所做的事情,但如果你真的不知道自己在做什么,那么你不必尝试.
所以,你的目标是设计一个规范化的数据库.为什么这是针对数据库规范化的?好吧,我们知道有几种"正常形式"可以确定表格对逻辑不一致和异常的免疫程度.如果你看一下第一范式的定义
第一范式(1NF)是关系数据库中关系的属性.如果每个属性的域仅包含原子值,并且每个属性的值仅包含该域中的单个值,则关系为第一范式.
因此,当您在字段中保存数组时,您的数据库甚至不是第一个普通形式.
不这样做的一些实际原因是:
确实有些人(像Joomla那样)存储了实体中不太重要的数据,例如字段中的非关键配置值.对此最好的方法可能是使用serialize(). 在这里您可以解释何时可以考虑这样做.但是,如果您真的知道自己在做什么,并且确实需要它,那么这只是你应该做的事情
如果您想要更多参考,可以阅读:
而这个SO答案:
| 归档时间: |
|
| 查看次数: |
2580 次 |
| 最近记录: |