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

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

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

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

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

Каковы ваши мнения по этому поводу?

Ответы

Ответ 1

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

Вы не можете беспокоиться о чем-то еще.

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

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

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

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

Технический ответ (для nitpickers, которые неизбежно возражают против: "вы не можете" )

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

Ответ 2

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

Ответ 3

"Когда у вас слишком много таблиц?"

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

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

Ответ 4

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