ноль и не ноль mysql - PullRequest
       9

ноль и не ноль mysql

1 голос
/ 07 ноября 2011

Привет, я начал перемещать доступ в mysql, и мне было интересно, есть ли ограничение или что-то еще, что я мог бы использовать, чтобы иметь возможность сделать столбец не null и в нем все еще есть пустые значения?Это не моя собственная база данных, если бы я просто заполнил пустые поля, а затем изменил столбец на null.

1 Ответ

1 голос
/ 08 ноября 2011

Да, существуют различные подходы для моделирования отсутствующей информации без использования нулей.

Вы можете выбрать значение для представления отсутствующей.Это довольно сложно реализовать, поэтому вот несколько примеров.Для атрибута end_date в открытом периоде (т. Е. Начался, но находится в процессе и еще не завершен), используйте дату в далеком будущем, например 9999-12-31.Для атрибута person_middle_name Джо Селко предлагает поместить значения метаданных в двойные фигурные скобки, например, {{NK}} для «неизвестно», {{NA}} для «не применимо» и т. Д.

Еще один несколько интуитивный подход длямоделирование недостающей информации осуществляется по отсутствию строки в таблице.Если работник не оплачивается, не добавляйте для него строку в таблице Payroll, что отличает его от наемного сотрудника, который в настоящее время не получает заработную плату, представленную нулевым значением salary_amount в таблице Payroll.

Еще один подход заключается в наличии строки в таблице.Вы можете иметь таблицы для Salaried, Unsalaried и SalaryUnknown и убедиться, что у каждого сотрудника есть одна строка в одной из этих таблиц (возможно, в MySQL применяется триггеры и / или процедуры).

...