Когда у вас слишком много таблиц?
Двое из моих коллег и я строим систему, чтобы делать все виды гидрологии и связанных с ней вещей. Он имеет множество требований и имеет большое количество таблиц.
Мы обрабатываем всевозможные выборки, которые выполняются в этой области (гидрология), и мы пытаемся найти способ сделать это менее болезненным способом.
Иногда нам нужно собрать все эти образцы, и я начинаю думать, что мы слишком усложняем наш дизайн базы данных.
Как и когда вы знаете, что вы перепроектируете базу данных? Конечно, мы рассматриваем много правил нормальной формы и других хороших практик, но когда все в порядке, чтобы отказаться от одного из этих правил, например. не нормализуешь что-то?
Каковы ваши мнения по этому поводу?
Ответы
Ответ 1
Короткий ответ
Вы не можете беспокоиться о чем-то еще.
Длинный ответ
Это звучит как еще одна форма преждевременная оптимизация. (YAFPO?)
Вы должны разработать свою схему, используя третью нормальную форму (3NF). После разработки вы должны заполнить свои таблицы данными и начать профилирование.
Если конкретный запрос считается слишком дорогостоящим, вы должны искать в denormalization в каждом конкретном случае.
Технический ответ (для nitpickers, которые неизбежно возражают против: "вы не можете" )
В какой-то момент вы достигнете предела, основываясь на выборе системы РСУБД и/или хранилища. Вероятными потолками будут потребление памяти или дескрипторы открытых файлов.
Ответ 2
У нас есть система с буквально сотнями таблиц - это не имеет большого значения, просто потому, что в базе данных хранится много разных вещей.
Ответ 3
"Когда у вас слишком много таблиц?"
На уровне логического дизайна правильный ответ "никогда".
На уровне физического дизайна (поскольку "наличие таблицы" действительно относится к некоторому понятию, относящемуся к физическому дизайну), правильный ответ "если и когда запросы, которые вам нужно сделать, учитывая ограничения СУБД, которые вы используете, приводят к тому, что производительность неприемлемо мала".
Ответ 4
У нас есть тонна таблиц в нашей системе. Мы сделали нормализацию базы данных до хорошей точки, а затем создали несколько представлений, которые охватывают наиболее распространенные потребности в использовании таблиц нашей системы. Что-то подобное может помочь вам.