Как соблюдать правило первой нормальной формы?

Одно из правил 1НФ гласит:
"никакие две строки не могут быть идентичными"

Рассмотрим таблицу "время работы предприятия" из 3 колонок
id - идентификатор предприятия
timeopen и timeclode - время открытия и закрытия (конец и начало рабочего дня)
Формально они у многих разные - кто-то работает с 8:00, 8:30, 9:00, 9:30, 10:00 и т.д. + то же самое со временем окончания работы. И есть экзотические варианты типа обеда с 12:00 до 12:45. Но при большом объёме предприятий однозначно появятся повторы в таблице и чем больше предприятий тем больше повторов...
Вопрос: как соответствовать 1НФ в этом случае и нужно ли (обоснованно) это соответствие?
  • Вопрос задан
  • 435 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Под "нет повторяющихся строк" в кривом русском переводе, подразумевается "нет повторяющихся кортежей".
Значения в полях при этом разумеется могут совпадать.
Поскольку "id - идентификатор предприятия" у Вас хочется верить уникальный, то добавив уникальный ключ по полю id вы соблюдете это требование.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@look2009
id предприятия равен md5($nameorg.$idorg); или проще id = idorg и ни какого автоинкремента в этой таблице.
Ответ написан
@AVKor
Вопрос: как соответствовать 1НФ в этом случае и нужно ли (обоснованно) это соответствие?

Прежде чем пытаться работать с БД, для начала прочтите любую книжку по ним.

Чтобы вот таких странных вопросов не было.

Если только в этой таблице id не может быть одинаковым у разных предприятий (а для id как бы напрашивается PK), она будет заведомо в 1НФ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы