0
  • 每个用户每个月都必须填写一些参数。
  • 需要补充的参数数量因用户而异,每个用户都可以添加一个新参数(但如果已经填写了值,则不能删除现有参数)。 EX : user_1有: param_1, param_2; user_2有:param_1、param_3、param_4 等等。

  • 我必须在用户级别对这些参数求和。

我有两个问题:

哪个是表结构的最佳选择? 考虑:用户 cah 拥有的最大参数数为 12;活跃用户数将达到5000左右(我希望)

  • 不同的列

| 用户 ID | 月 | 参数_1 | 参数_2 | ... | 参数_12|

  • 不同的行:

    | 用户 ID | 月 | 参数 ID | 参数值 |

    | 001 | 2012 年 11 月 | 参数_1 | 100 |

    | 001 | 2012 年 11 月 | 参数_2 | 125 |

    | 002 | 2012 年 11 月 | 参数_1 | 110 |

    | 002 | 2012 年 11 月 | 参数_3 | 150 |

    | 002 | 2012 年 11 月 | 参数_4 | 175 |

考虑到表结构的最佳选择,我如何计算每个用户的参数总和?

4

1 回答 1

3

我认为第二种方法最适合您的情况,因为在这种情况下您不会浪费任何内存,并且将来如果您必须扩展数据库,那么它也不需要对数据库进行任何重大更改。

现在是对参数求和的第二个问题,然后您可以通过其 user_id 获取特定用户的所有记录,然后添加所有这些值

您可以编写如下查询

$query = "SELECT SUM(param_value) FROM table_name WHERE param_id = $id"; 
mysql_query($query);
于 2012-11-24T08:42:19.870 回答