Я сейчас это реализовал, поэтому я решил поделиться тем, что я сделал, я попросил помощника, который является dba (Грег), дать несколько советов, и его ответы в основном привели мою реализацию:
В любом случаекак «Catcall», подразумеваемое использованием TRIGGERS (по крайней мере, в моем случае), вероятно, было не лучшим решением.Грег предложил создать две денормализованные таблицы с одинаковой схемой, а затем создать VIEW, который чередует две денормализованные таблицы, одна из которых является «активной», а другая «деактивированной», и активная таблица будет активно запрашиваться моей сетью.Приложение и деактивированная таблица могут быть обновлены денормализованной информацией.
Мое приложение будет выполнять запросы к VIEW, имя которого останется прежним.
В этом суть.
Некоторые подробности реализации (mysql 5.0.n):
Я использовал хранимые процедуры для обновления информации, а затем переключил представление с denorm_table_a на denorm_table_b.
Необходимо обновить разрешения для пользователя моей базы данных GRANT CREATE, CREATE VIEW, EXECUTE, CREATE ROUTINE, ALTER ROUTINE, DROP, INSERT, DELETE, UPDATE, ALTER, SELECT, INDEX для dbname. * TO 'dbuser'@ '%';
Для создания копии таблицы: CREATE TABLE ... LIKE ....;Команда действительно полезна (она также копирует определения индекса)
Создание ПРОСМОТРА было простым СОЗДАНИЕ ИЛИ ЗАМЕНА ПРОСМОТРА denorm_table AS SELECT * FROM denorm_table_a;
СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПРОСМОТР denorm_table AS SELECT * FROM denorm_table_b;
Я создал специальный объект «Денормализованный запрос» на своем среднем уровне, который затем отображался (через спящий режим) на денормализованную таблицу (или на самом деле Просмотр) и позволял легко и гибко запрашивать через механизм Критерии гибернации.
В любом случае, надеюсь, что это поможет кому-то, если кому-то понадобятся какие-либо подробности, дайте мне знать,
Приветствия Симона