дизайн схемы - PullRequest
       15

дизайн схемы

0 голосов
/ 23 декабря 2008

Скажем, вы GM dba, и вы должны разрабатывать модели GM

Это лучше сделать?

  • table_model
    • type {cadillac, saturn, chevrolet}

Или это?

  • table_cadillac_model
  • table_saturn_model
  • table_chevrolet_model

Скажем, бизнес-линии имеют одинаковые столбцы для модели и для каждого подтипа существует более миллиона записей.

EDIT:

  • много CRUD
  • есть много очень ресурсоемких отчетов
  • в любой схеме есть таблица model_detail, которая содержит 3-5 записей для каждой модели, и детали для каждой модели различаются (вы не можете добавить детали cadillac в модель сатурна)
  • Команда разработчиков не имеет проблем со сложностью БД
  • Я не совсем уверен, что это вопрос нормализации. даже если структуры одинаковы, их можно рассматривать как разные объекты.

EDIT:

Причины разделения структуры на несколько таблиц - бизнес-линии могут иметь разные бизнес-правила в отношении частей - addModelDetail () может отличаться для каждой бизнес-линии (даже если формат данных один и тот же) - высокая активность добавления / обновления - лучшая производительность с разделенной структурой, а не с одной структурой (я предполагаю и не уверен здесь)?

Я думаю, что это вариация проблемы EAV. При представлении в качестве структуры EAV структура единой таблицы обычно считается плохой идеей. При таком подходе единый табличный конструктор, как правило, считается хорошей идеей. Интересно ...

Я думаю, что самый интересный ответ - это две разные структуры - одна для грубой и одна для отчетности. Я думаю, что я попробую объединенное / плоское представление для отчетов и несколько таблиц для crud и посмотрю, как это работает.

Ответы [ 11 ]

0 голосов
/ 23 декабря 2008

Учитывая описание, которое вы нам дали, ответ либо.

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

[Сказав это, я думаю, что ответ будет первым ;-) Поскольку я представляю себе, хотя они являются разными моделями, данные для каждой модели, вероятно, будут очень похожи.

Но на данный момент это полное предположение.]

Edit: Учитывая ваше обновленное редактирование, я бы сказал, что первое точно. Поскольку у них все одинаковые данные, они должны войти в одну таблицу.

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