将misc数据存储在数据库中

时间:2013-08-15 13:48:54

标签: mysql database database-design

这是过去几天一直存在的一般性'数据库'问题。

我有一个User表,其中包含所有用户详细信息。但是,我需要保存misc数据。这样做有多好?我注意到WordPress有一个wp_options表存储misc数据(这个问题与WordPress无关)。

这是保存这类数据的合理方式吗?

编辑:其他信息

  • “misc”数据应该是可搜索的
  • misc数据是数字,字母数字,“特殊”的混合(例如:地理坐标)
  • 用户可以发明新的“类型”吗?比如标签?
  • 大多数用户会有额外的misc数据,但我无法想象有超过200个用户。每个都有大约10个misc数据(不适合用户表)

2 个答案:

答案 0 :(得分:2)

关系数据库中有一些常见的解决方案。

在数据库环境中工作的选项是使用“实体 - 属性 - 值”或EAV架构。这使得存储和检索数据变得容易,但很难验证它(例如“年龄必须在0到100之间”),或者运行复杂的查询(例如“找到地理编码x 20英里内的用户,地址以”Laystall Steet开头) “而且年龄大于22岁”。

第二个选项是使用XML将非关系数据存储在MySQL表中,并使用XPath support进行查询。

答案 1 :(得分:0)

关系模型在处理类似标签的结构时没有“闪耀”。特别是用户可扩展的。

考虑到数据库的小尺寸,我建议您切换到NOSQL解决方案或者去Postgres中使用类似Json字段的内容,这样您就可以将适当的关系与您的可扩展标记类系统混合。我理解,支持搜索是测试版,但您可以获得an idea of how it works here