2016-02-17 2 views
1

У меня есть объект work_orders, он может иметь заказы на работу с детьми, поэтому на столе есть parent_id. Бывают случаи, когда детский заказ может быть выставлен счет отдельно или с родителем. Поэтому у меня есть еще один столбец с именем bill_with_parent.Дизайн базы данных - условные нулевые значения

Так что bill_with_parent колонка только когда-либо относится к заказам на работу детей, я устанавливал его NULL для не нарядов на работу детей, а если это ребенок, он либо будет 0 или 1.

Это правильный способ справиться с чем-то подобным?

+0

Да, все в порядке. – Rahul

ответ

3

Хотя это не обязательно «неправильно». Я бы избавился от null и просто разрешил 0 и 1. Конечно, для родителей это всегда будет 0, только ребенок может иметь как 1, так и 0.

Когда вы позволяете поле, чтобы быть null вы всегда должны добавить защиту для null случае во всех запросах, так что я бы Оставляем используя null для использования только с ключами иностранных полей или мест, где есть буквально не действительное значение.

+0

Я думаю, что OP означал 0/1 для ребенка, основанного на определенных бизнес-ограничениях. в этом случае родитель должен быть NULL. – Rahul

+2

Правильно, у родителей всегда было бы «0» для этого поля, и у этого был бы тот же результат. Если это лучше, чем использование null, это будет хорошо. – kenshin9

+1

@ kenshin9 yes, если он не создает фиктивное состояние, и вы можете избежать null, Id пойти на него или даже добавить другое состояние '-1' для родительского случая, но я думаю, что из вашего примера, всего лишь 0 работ с родителями. – Ray