我会说我的数据库知识是合理的,我为此使用了 MySQL (InnoDb),并且也完成了一些 Postgres 工作。反正...
- 我有很多是或否的问题。
- 大量的人可以为同一个民意调查做出贡献。
- 用户可以选择任一选项,这将记录在数据库中。
- 用户可以稍后改变主意并交换需要更新存储数据的选择。
我目前存储这些数据的计划:
- POLLID、用户ID、决策、时间戳
显然用户数据在另一个表中。
要添加他们的选择,我必须查询他们之前是否投票并插入,否则,更新。如果我想查看民意调查结果,每次有人想查看民意调查时,我都需要遍历所有决策(尽管是索引部分)。
我的问题是
- 有没有更有效的方法来存储/查询这个?
- 我会有关于 POLLID 或 POLLID 和 USERID 的索引(可能只是一个唯一约束)吗?或其他?
- 附加问题:为什么我不能像在 Postgres 中那样在我的表上选择 HASH 和 BTREE 索引?