Сколько данных должно быть разделено? - PullRequest
0 голосов
/ 02 мая 2019

В настоящее время я настраиваю базу данных с доступом Microsoft.Основная цель - перестроить огромный инвентарь в хорошо структурированном виде.Текущий инвентарь полон дублирования и избыточности, которые я пытаюсь уменьшить с доступом.Мой вопрос сейчас состоит в том, сколько данных должно быть разделено на самые маленькие логические части.

Список включает в себя много разных данных, я уже почти разбил их, позвольте мне дать вам обзор:

E/R-Diagram

Мне кажется,что я могу разделить различные атрибуты комнаты на отдельные таблицы, потому что каждый ключ появляется несколько раз.Например, у каждой комнаты есть категория (эксп .: бюро) и определение (эксп .: конференц-зал), и, конечно, есть несколько комнат с одинаковой категорией / определением.

Вопрос в том, имеет ли смысл разделить это на изолированные таблицы?Такое ощущение, что я делю это слишком сильно.

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Ваши базовые таблицы данных: Сотрудники, Команды, Отделы, Полы, Комнаты, Рабочие места, Оборудование.

Тогда вам нужны таблицы поиска для таких вещей, как: Employee_Gender или Room_Size (все, что вам нужно выбрать из фиксированного набора значений).

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

Также не следует напрямую связывать комнаты и устройства. Связи через рабочие станции достаточно, если у вас нет устройств, назначенных комнатам, которые не принадлежат какой-либо рабочей станции. Даже тогда я просто создавал бы записи виртуальных рабочих станций, а не делал цикл ссылок на таблицы.

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

0 голосов
/ 02 мая 2019

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

Room definition также является справочной таблицей.Но имена могут меняться, поэтому я бы пошел сюда с внешним ключом (от Room).Но вы также можете сохранить имя определения напрямую, если это поможет облегчить вашу жизнь.

Остальное просто:

Комната -> Этаж
Устройство -> Комната

Здесь нет отношения n: m, для которого нужна таблица соединителей.

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