私は投票アプリケーションに取り組んでいます。SQL スキーマは次のとおりです。
polls -> * options (poll_id) -> * answers (option_id)
または:「投票には多くのオプションがあり、オプションには回答(別名投票)があります」
poll ごとにユーザーごとに 1 票しか許可できません。これはマージ句です(明らかに機能しません):
merge into answers
using (select count(*)
from answers, options, polls
where answers.option_id = options.id
and options.poll_id = polls.id
and polls.id = {poll_id}
and answers.owner_id = {owner_id}) votes
on (votes = 0)
when matched then
insert into answers values (NULL, {option_id}, {owner_id}, NOW())