У меня есть два разных существующих дизайна баз данных в унаследованных приложениях. С одной стороны они создали две таблицы; 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!!
Мне любопытно узнать мнение других о том, как они будут действовать или как они будут действовать. Что сработало для вас? По каким причинам я не должен использовать одну или другую?
Спасибо!