Должны ли голоса быть его собственной моделью в приложении RoR? - PullRequest
3 голосов
/ 12 марта 2011

Допустим, вы хотите создать сайт, похожий на Digg.com. Должны ли голоса быть отдельной моделью, или голоса должны быть полем в таблице для модели объекта, за который проголосовали?

Ответы [ 3 ]

3 голосов
/ 12 марта 2011

Учитывая требования сайта на Digg.com, я бы сказал - собственную модель.Во многом из-за необходимости обнаружения так называемых "избирательных колец" - обнаружения групп фальшивых избирателей.

Кроме этого - я бы пошел с полями.MySQL, например, может обновлять строки атомарно (так сказать, сам никогда не пробовал), что должно быть достаточно эффективным.Подробнее о MySQL документах .

3 голосов
/ 12 марта 2011

Это зависит от того, сколько информации вы хотите хранить. Если у вас есть ссылка на что-то и общий балл, тогда вам не нужна модель. Если вы хотите сохранить число проголосовавших, количество полученных голосов "за" и "против", отметку времени, когда были получены голоса, и возможность откатывать голоса из недисциплинированных источников, вам необходимо сохранить каждый из этих голосов в качестве своей собственной модели. Лично я бы сделал каждый голос за свою запись, если бы разрабатывал такую ​​систему.

0 голосов
/ 12 марта 2011

Зависит от того, хотите ли вы сохранить информацию о голосовании или нет. Это не имеет ничего общего с RoR, но с нормализацией базы данных.

Если вы хотите сохранить дополнительную информацию при голосовании, например, возможно, дату, когда она была записана, вы должны сохранить ее в другой таблице (и в качестве таковой это будет другая модель). Если нет, вы можете сохранить его в таблице других объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...