Когда у тебя слишком много столов? - PullRequest
14 голосов
/ 05 февраля 2010

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

Мы обрабатываем все виды отбора проб, которые проводятся в рамках этой области (гидрология), и мы пытаемся найти способ сделать это менее болезненным образом.

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

Как или когда вы знаете, что вы чрезмерно проектируете базу данных? Конечно, мы рассматриваем множество нормальных правил формы и другие хорошие практики, но когда все в порядке, можно отказаться от одного из этих правил, например, не нормализует что-то?

Что вы думаете по этому поводу?

Ответы [ 4 ]

14 голосов
/ 05 февраля 2010

Короткий ответ

Ты не можешь беспокоиться о чем-то другом.

Длинный ответ

Это звучит как еще одна форма преждевременной оптимизации . (YAFPO?)

Вы должны разработать свою схему, используя третью нормальную форму (3NF). После разработки вы должны заполнить свои таблицы данными и начать профилирование.

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

Технический ответ (для придурков, которые неизбежно будут возражать: «ты не можешь»)

В какой-то момент вы достигнете предела в зависимости от выбранной вами СУБД и / или механизма хранения. Вероятным потолком будет потребление памяти или дескрипторы открытых файлов.

3 голосов
/ 05 февраля 2010

«Когда у вас слишком много столов?»

На уровне логического плана правильный ответ - «никогда».

На уровне физического дизайна (поскольку «наличие таблицы» действительно относится к некоторой концепции, относящейся к физическому дизайну), правильный ответ «если и когда запросы, которые вам нужно выполнить, учитывая ограничения используемые вами СУБД приводят к тому, что производительность становится неприемлемо низкой. ".

3 голосов
/ 05 февраля 2010

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

0 голосов
/ 05 февраля 2010

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

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