Зачем нужен 2НФ? - PullRequest
       14

Зачем нужен 2НФ?

2 голосов
/ 05 июня 2009

Просто интересно, когда-нибудь 2NF может не понадобиться.

Option 1. ORDERS {orderId (pk), custId (fk), total, date, status, ...}
   PARTS {orderId (pk), partsId (pk), qty, unitPrice, description, ...}

Option 2. ORDERS {orderId (pk), custId, total, date, status, ...}
   ORDER_PARTS {orderId (pk)(fk), partsId (pk)(fk), qty, ...}
   PARTS {partsId (pk), unitPrice, description, ...}

Большинству людей нравится вариант 2, я думаю, потому что это 2NF, но я думаю, что вариант 1 лучше, потому что он будет проще и быстрее, когда мы будем их запрашивать. Зачем нам нужен 2NF в подобных случаях?

Ответы [ 3 ]

6 голосов
/ 05 июня 2009

Как начинающий администратор базы данных, вы должны поместить все в третью нормальную форму. Это означает, что каждый столбец в строке зависит от:

  • ключ (1NF).
  • весь ключ (2NF).
  • ничего, кроме ключа (3NF).

Имея опыт, вы можете иногда возвращаться к 2NF по разным причинам (обычно по скорости), но я не беспокоюсь об этом как новичок.

3 голосов
/ 05 июня 2009

Вам нужна вторая нормальная форма, потому что с опцией 1 деталь не существует, если она не принадлежит заказу.

1 голос
/ 05 июня 2009

В варианте 1, когда пользователь хочет изменить описание детали, вы должны будете изменить его для ВСЕХ заказов, связанных с этой деталью. Разве вы не чувствуете неприятный запах?

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