Помощь в определении наилучшей практики структуры таблицы элементов обслуживания - PullRequest
0 голосов
/ 17 ноября 2009

У меня есть два разных существующих дизайна баз данных в унаследованных приложениях. С одной стороны они создали две таблицы; tblAdminMaintCategory и tblAdminMaintItems. С другой стороны отдельные столы для всего; tblAdminPersonTitle и tblAdminRace.

Метод № 1

Теперь в первом примере в Race будет запись в tblAdminMaintCategory ( скажем, ID # 2 ), а затем в tblAdminMaintItems каждая отдельная раса будет иметь запись с соответствующим ID категории. Тогда, чтобы запросить его для вариантов расы, например, пойдет -> SELECT * FROM tblAdminMaintItems WHERE CategoryID = 2

Метод № 2

Теперь во втором примере будет просто запись в tblAdminRace для каждой отдельной расы. Чтобы запросить это будет идти -> SELECT * FROM tblAdminRace.

Теперь я пытаюсь в будущем выяснить, каким из этих путей я хочу следовать в своих собственных приложениях. Мне не нравится, что Первый метод, похоже, вводит magic numbers. Мне не нравится, что Второй метод представляет множество маленьких таблиц, но я не уверен, что это END OF THE WORLD!!

Мне любопытно узнать мнение других о том, как они будут действовать или как они будут действовать. Что сработало для вас? По каким причинам я не должен использовать одну или другую?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 17 ноября 2009

Разумный дизайн - иметь отдельные объекты в разных таблицах; Как: Гонка, Автомобиль, Человек, Местоположение, Задача обслуживания, График обслуживания. Если вам не нравятся объединения в запросах, просто создайте несколько представлений. Возможно, я неправильно понял пример, но вот одно из предложений.

race_model_01

1 голос
/ 17 ноября 2009

Магические числа всегда кажутся плохими идеями. В частности, где вы можете использовать больше дескриптивных кодов в таблицах, в которых не так много записей (Титулы, Расы и т. Д.).

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

EDIT: Меньшие справочные таблицы облегчат обслуживание. Поменяй в одном месте, поменяй все. Но это определенно поможет вам создать структуру таблиц, и если вы забудете заполнить эти таблицы метаданных, у вас будет много проблем на новых установочных сайтах.

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