【问题标题】:Mysql -> How many columns can i have in users table ? should i store arrays or not?Mysql -> users 表中可以有多少列?我应该存储数组吗?
【发布时间】:2012-12-01 09:25:09
【问题描述】:

我想为我的用户创建一个数据库,我需要为每个用户存储大约 50 种不同的和平信息。

例子

联系信息将 hv(地址、电话、电子邮件、家庭电话等...) 个人信息将 hv(姓名、姓氏、出生日期、出生城市、工作等...) 重新释放信息...(6项) 等等


所以我有很多类别,每个类别至少包含 5-6 个元素,所以我的问题是

我应该为每个项目创建一个列(每个用户大约有 50 个字段)还是更好地为每个类别创建一个列并使用序列化将数组存储到该字段中(大约有 6 个列(每个将保存可容纳 6-7 个项目的数组)?

最佳实践是什么?如果我选择数组,我应该将列类型设置为文本“因为我无法确定所有项目的确切 varchar 大小”?

【问题讨论】:

  • 将重复项规范化到单独的表中通常是个好主意,存储数组或序列化数据不可避免地会导致问题
  • 使用良好的 ORM 和良好的设计,您可以将数组懒惰地存储在单独的表中。

标签: php mysql arrays database-design serialization


【解决方案1】:

我认为序列化一个数组并将该数组存储在关系数据库中是一个坏主意。为了能够利用关系数据库的全部功能(包括一堆可能的 sql 查询来处理您的数据),您应该考虑一个合适的relational database design,包括一个或多个表以及它们之间的关系。想想primary and foreign keysnormalization。如需更多建议,您应该发布有关您的示例的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2011-05-31
    • 2011-04-22
    • 2012-05-21
    相关资源
    最近更新 更多