2012-07-22 88 views
2

可能有人建議我在正確的SQL架構對於這個問題:特別MySQL表結構

我創建了一個選項動態數量的應用程序(選項1,選項2,選項3,等...) 。我希望用戶能夠選擇其中一個選項,然後增加與該選項關聯的數字。我如何實現一個動態表,因爲我顯然不能預先定義4個表,例如,每個表都是一個選項。

在此先感謝。

+1

要麼我不明白的問題,或者你也得太多。只有一張桌子不夠用,有兩列:一個用於選項名稱,一個用於與其相關的號碼? – JJJ 2012-07-22 21:13:19

回答

2

這聽起來像你正在尋找一個表像

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

然後,您可以運行類似的查詢:(基於選擇什麼樣的訪問者option_id灌裝)

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

+0

這看起來很正確,謝謝! – Apollo 2012-07-22 21:20:43

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};