【发布时间】:2014-01-19 04:22:55
【问题描述】:
我正在开发一个网络解决方案,其中必须将有关使用各种产品的统计结果存储在 mysql 数据库中。由于有限的 mysql 数据库设计经验和同样有限的统计经验,我想知道我对下面表格设计的选择是否有意义,或者是否有更好的选择?我查看了此站点上的相关主题(例如 Storing And Displaying Stats ),但找不到可以回答我问题的内容。
在这个开发阶段,我还不知道我想在未来存储哪些具体的统计结果,所以我需要一个灵活的设计。
表结构的简化解决方案1(例如表字段):
field1 field2 field3 field4 field5 fieldn
id stattype statresults nrofpeopleperhousehold incomeperhh created
value example: 1 boughtproductsperyearperhh 4 3 $33000 2010-02-19
表结构(例如表字段)的简化解决方案2:
field1 field2 field3 field4
id stattype statresults created
特定统计类型的所有统计结果(例如 'average_number_of_bough_products_perfamily')都在字段 3 内。
解决方案 1 的字段 4 和 5 包含搜索条件,用户可以根据这些条件找到给定统计类型的特定统计结果。这个设计对我来说看起来简单明了,但不是很有未来的证明,因为将来可能需要更多可能的标准。
我认为解决方案 2 是我认为更多的未来证明,因为搜索条件(例如解决方案 1 的字段 3 和 4)嵌入到字段 3(statresults)(使用像 json 之类的一些编码),但结果是 statresults字段将包含更多数据...
【问题讨论】:
-
“最佳”是主观的; 你的标准是什么?
-
如前所述,设计灵活性是关键标准之一
-
太棒了。这使得您提到的两个选项之间的选择变得微不足道。那你问这个干嘛?
-
我真的不明白这两种结构。列名是
field1、field2、. . .?为什么叫stattype和id的东西存储在一个看起来像一行的地方?您能否提供几行数据的实际外观以及有效的行标题? -
@Matt:对于专家来说这可能是微不足道的,但对于像我这样的初学者来说却不是这样,因为我不知道这两种解决方案可能存在哪些陷阱,也不知道它们是否是最好的前进方式......
标签: mysql