2

誰かがこの問題の適切な SQL アーキテクチャについてアドバイスしてくれませんか:

動的な数のオプション (オプション 1、オプション 2、オプション 3 など) を持つアプリを作成しています。ユーザーがこれらのオプションの 1 つを選択できるようにして、そのオプションに関連付けられた数値をインクリメントできるようにしたいと考えています。たとえば、明らかに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 に答える