私のデータベースの知識は合理的です。これにはMySQL(InnoDb)を使用しており、Postgresの作業も行っています。ともかく...
- はいまたはいいえの質問がたくさんあります。
- 多数の人々が同じ投票に貢献することができます。
- ユーザーはどちらかのオプションを選択でき、これはデータベースに記録されます。
- ユーザーは後で気が変わって、保存されているデータの更新が必要になる選択肢を入れ替えることができます。
このデータを保存するための私の現在の計画:
- POLLID、USERID、DECISION、TIMESTAMP
明らかに、ユーザーデータは別のテーブルにあります。
彼らの選択肢を追加するには、彼らが以前に投票したかどうかを確認するためにクエリを実行し、挿入する必要があります。そうでない場合は、更新します。投票結果を確認したい場合は、誰かが投票を確認するたびに、すべての決定(インデックス付きの部分ではありますが)を繰り返す必要があります。
私の質問は
- これを保存/クエリするためのより効率的な方法はありますか?
- POLLID、またはPOLLID&USERID(おそらく一意の制約)にインデックスを付けますか?または他?
- 追加の副次的な質問:Postgresの場合のように、テーブルでHASHインデックスとBTREEインデックスを選択するオプションがないのはなぜですか?