Ответ 1
Схема выглядит хорошо, и да, вам нужно отслеживать голоса пользователей, а также.
Какая лучшая схема базы данных для опросов? Являются ли отношения "один ко многим" полезными для этого? Я думаю о наличии двух таблиц:
poll_questions
int id
varchar body
datetime created_at
datetime updated_at
poll_answers
int id
varchar body
int votes default 0
int question_id (foreign key to poll_questions.id)
datetime created_at
datetime updated_at
Тогда также будет третья таблица для отслеживания, кто проголосовал за ответ, чтобы пользователи могли голосовать только один раз:
poll_voting_history
int id
int question_id (foreign key to poll_questions.id)
int answer_id (foreign key to poll_answers.id)
int user_id (foreign key to the id in the users table)
datetime created_at
datetime updated_at
Каковы ваши мысли? Я думаю об этом правильно?
Схема выглядит хорошо, и да, вам нужно отслеживать голоса пользователей, а также.
Примечание. Столбец "голосов" таблицы poll_answers не требуется. Голоса могут быть определены путем запроса таблицы Poll_voting_history.
Я думаю, что question_id в poll_voting_history тоже не нужен, поскольку каждый ответ указывает на вопрос, поэтому на основе answer_id вы можете получить question_id, к которому он принадлежит.
Я также хотел бы добавить статус для poll_questions и poll_answers, на случай, если нам потребуется активировать или отключить текущий вопрос опроса в течение указанной даты и времени.