Если у меня есть таблица, которая имеет 100 полей, это указывает на плохой дизайн базы данных? - PullRequest
0 голосов
/ 28 марта 2012

У меня есть таблица: Детали заказа.Заказ имеет много деталей, в моем случае 100 полей.В базах данных обычно есть 100 полей в таблице, или мне нужно разбить их на более мелкие таблицы и как?Спасибо!

Некоторые данные в таблице «Сведения о заказе» используются менеджерами по продажам, другие данные - специалистами по линейке продуктов, а другие данные используются отделом закупок.все это вместе или я должен разбить его на части и какой НФ будет применяться к этому уровню?

Ответы [ 3 ]

4 голосов
/ 28 марта 2012

Простой ответ - нет. Конечно, может быть столько полей, сколько требуется, и количество полей в данной базе данных не указывает на плохой дизайн. Однако то, что может указать на плохой дизайн (как указывает Кшитий Мехта в комментарии), является высокой степенью репликации данных (или плохой нормализация ).

Нормализация - это процесс организации данных в базе данных. Это включает в себя создание таблиц и установление связей между этими таблицами в соответствии с правилами, разработанными как для защиты данных, так и для повышения гибкости базы данных за счет устранения избыточности и противоречивой зависимости.

Цели нормализации за 1NF (первая нормальная форма) были сформулированы Коддом следующим образом:

  1. Для освобождения коллекции отношений от нежелательных зависимостей вставки, обновления и удаления;
  2. Уменьшить необходимость реструктуризации сбора отношений по мере появления новых типов данных и, таким образом, увеличить срок службы прикладных программ;
  3. сделать реляционную модель более информативной для пользователей;
  4. Сделать набор отношений нейтральным по отношению к статистике запросов, где эти статистические данные могут изменяться с течением времени. -E.F. Кодд, «Дальнейшая нормализация реляционной модели базы данных»

Обычно базы данных нормализуются до 2NF, а в некоторых случаях выше ...

См. Википедию или эту статью Microsoft для получения дополнительной информации. Надеюсь, это поможет.

0 голосов
/ 28 марта 2012

Вам нужно знать две вещи: как нормализовать и когда нормализовать.

Если вы уже знаете, как нормализовать, и таблица нормализована настолько, насколько вы можете ее получить, не разбивайте ее только ради хорошего дизайна. Если вы не знаете, как нормализовать, посмотрите другие ответы.

Ответ на вопрос о том, когда нормализоваться, более тонкий. Есть эксперты, которые рекомендуют все время нормализовать. Есть другие эксперты, которые этого не делают. Мой ответ - нормализовать, если у вас нет лучшего плана для рассматриваемого случая.

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

0 голосов
/ 28 марта 2012

Пока данные в таблице нормализованы, разделение их на несколько таблиц не дает больших преимуществ.

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