【发布时间】:2012-12-01 09:25:09
【问题描述】:
我想为我的用户创建一个数据库,我需要为每个用户存储大约 50 种不同的和平信息。
例子
联系信息将 hv(地址、电话、电子邮件、家庭电话等...) 个人信息将 hv(姓名、姓氏、出生日期、出生城市、工作等...) 重新释放信息...(6项) 等等
所以我有很多类别,每个类别至少包含 5-6 个元素,所以我的问题是
我应该为每个项目创建一个列(每个用户大约有 50 个字段)还是更好地为每个类别创建一个列并使用序列化将数组存储到该字段中(大约有 6 个列(每个将保存可容纳 6-7 个项目的数组)?
最佳实践是什么?如果我选择数组,我应该将列类型设置为文本“因为我无法确定所有项目的确切 varchar 大小”?
【问题讨论】:
-
将重复项规范化到单独的表中通常是个好主意,存储数组或序列化数据不可避免地会导致问题
-
使用良好的 ORM 和良好的设计,您可以将数组懒惰地存储在单独的表中。
标签: php mysql arrays database-design serialization