Я бы предпочел значение DEFAULT вместо NULL.Таким образом, в базе данных, такой как MySQL, я создам столбец
hasVotedYes TINYINT(1) DEFAULT 0
, когда пользователь проголосует «против», я изменится на 1, если пользователь проголосует «за», я отмечу его как 2. Однако NULLпо умолчанию НЕ плохая практика, пока вы не обработаете NULL-объект в коде приложения.
Подумав немного больше, я думаю, значения по умолчанию - еще лучшая идея.Например, вы хотите отфильтровать пользователей, которые проголосовали за, проголосовали против или не проголосовали - вы создадите подготовленный оператор, например,
... where hasVotedYes = ?;
В то время как в случае значения по умолчанию NULL вы будете писать два типазапросов.
... where hasVotedYes = ?
Это работает для проголосовавших за или против дела.
.... where hasVotedYes is NULL;
Это для не проголосовавших дела.