2

有人可以就这个问题的正确 SQL 架构给我建议:

我正在创建一个具有动态数量的选项(选项 1、选项 2、选项 3 等)的应用程序。我希望用户能够选择其中一个选项,然后增加与该选项关联的数字。如何实现动态表,例如,我显然无法预先定义 4 个表,并且每个表都是一个选项。

提前致谢。

4

2 回答 2

2

听起来你在找一张像

CREATE TABLE `options` (
    option_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255),
    occurrences INT UNSIGNED
) ENGINE=InnoDB;

然后,您可以运行如下查询:

UPDATE options SET occurrences = occurrences + 1 WHERE option_id = ____;

(根据访问者选择的内容填写 option_id。)

于 2012-07-22T21:14:34.110 回答
0

如果您想跟踪哪个用户选择了哪些选项,您可以添加一个用户选项表,并从 VoteyDeciple 中删除出现次数计数器。

CREATE TABLE `UserOptions` (
    `uo_user` INT NOT NULL REFERENCES `users`(`user_id`),
    `uo_option` INT NOT NULL  REFERENCES `options`(`option_id`)
);

然后,如果您想计算某个选项的出现次数,您可以使用

SELECT count(*) as `occurrences` from UserOptions where uo_option={$option_id};
于 2012-07-22T21:24:11.160 回答