У меня есть хороший пример.Слишком Нормализованная база данных со следующим набором отношений:
people -> rel_p2staff -> staff
и
people -> rel_p2prosp -> prospects
Когда у людей есть имена и данные о персонале, у сотрудников есть только данные о сотрудниках, у потенциальных клиентов есть только сведения о потенциальных клиентах, а таблицы rel - это таблицы отношений с внешними ключами от людей, связывающихся с персоналом и потенциальными клиентами.
Этот вид дизайна распространяется на всю базу данных.
Теперь, чтобы запросить этот набор отношений, этообъединение в несколько таблиц каждый раз, иногда 8 и более таблиц.Он работал нормально до середины этого года, когда он стал очень медленным, когда мы преодолели 40000 записей о людях.
Индексация и все низко висящие фрукты были израсходованы в прошлом году, все запросы оптимизированы до совершенства.Это конец пути для конкретного нормализованного проекта, и руководство одобрило перестроение всего приложения, которое зависит от него, а также реструктуризацию базы данных в течение 6 месяцев.$$$$ Ой.
Решение будет иметь прямую связь для people -> staff
и people -> prospect