特别是MySQL表结构

时间:2012-07-22 21:08:50

标签: mysql database-design

有人可以就此问题告诉我正确的SQL架构:

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

提前致谢。

2 个答案:

答案 0 :(得分: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。)

答案 1 :(得分: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};