Протокол синхронизации данных Эталон Oracle БД с базой данных сайта Net-Centric (draft) 1. Режимы отображения таблиц Эталон.Oracle на сайт Таблицы из системы Эталон отображаются на сайт с использованием режимов: 1.1) Модульное отображение 1.2) БД отображение 1.1. Модульное отображение применяется для таблиц-классификаторов, изменение которых средствами сайта неактуально. При модульном отображении, на сайте формируется программный модуль, содержащий только те поля таблицы Эталон, значения которых реально выводятся на экран для просмотра или осуществления выбора значения из ограниченного набора значений. Модульное отображение применяется для снижения нагрузки на веб-сервер при работе системы и существенного уменьшения времени загрузки форм и страниц. Синхронизация данных для таблиц, отображаемых в этом режиме выполняется только в одну сторону: из системы Эталон на сайт. 1.2. БД отображение применяется для таблиц, активно изменяемых пользователями сайта. В этом режиме в MySQL БД сайта формируется таблица, в которую включаются все актуальные для отображения на сайте поля. Кроме того, в каждую таблицу дляидентификации записей в рамках сайта, включается автоинкрементное поле ID, не имеющее одноименного аналога в системе Эталон. Синхронизация данных для таблиц, отображаемых в этом режиме выполняется в обе стороны: из системы Эталон на сайт и из системы сайта в соответствующую схему Эталон. 1.3. Именование. - Таблицы, отображаемые на сайт, имеют те же имена, что и таблицы в системе Эталон. - Все поля таблиц, отображаемых на сайт из системы Эталон, имеют те же имена, что и соответствующие поля в системе Эталон. Это справедливо для обоих режимов отображения. 2. Режимы синхронизации Для каждой таблицы должен быть определен один из следующих режимов синхронизации 2.1.) По требованию 2.2.) По расписанию 2.1. Синхронизация по требованию Синхронизация по требованию может быть объявлена для таблиц, для изменения данных которых не требуется премодерация. Синхронизация по требованию может быть также выполнена пользователем с правами администратора для любой таблицы. - На сайте: осуществляется немедленно в момент создания новой записи или изменения данных. В случае создания записи, система сайта: - добавляет в системный лог запись о попытке создания новой записи - создает запись в таблице системы Эталон - создает запись в таблице сайта, с идентификацией, переданной из системы Эталон - обновляет запись в системном логе, занося в нее код выполнения операции В случае изменения записи, система сайта: - добавляет в системный лог запись о попытке изменения записи - изменяет запись в таблице системы Эталон - изменяет запись в таблице сайта - обновляет запись в системном логе, занося в нее код выполнения операции В случае удаления записи, система сайта: - добавляет в системный лог запись о попытке удаления записи - удаляет запись в таблице системы Эталон - удаляет запись в таблице сайта - обновляет запись в системном логе, занося в нее код выполнения операции - В системе Эталон: [требуется выяснение возможностей] ... 2.2. Синхронизация по расписанию Синхронизация по расписанию может быть объявлена для таблиц, для изменения данных которых требуется премодерация, прежде чем эти данные появятся в системе Эталон - или по иным соображениям. - В таблицах сайта, для которых объявлен режим синхронизации по расписанию: В случае создания записи, система сайта: - добавляет в системный лог запись о попытке создания новой записи - создает запись в таблице сайта с внутренней идентификацией системы сайта - записи присваивается статусы "изменена", "не синхронизирована" - обновляет запись в системном логе, занося в нее код выполнения операции В случае изменения записи, система сайта: - добавляет в системный лог запись о попытке изменения записи - изменяет запись в таблице сайта, присваивая ей статус "изменена" - обновляет запись в системном логе, занося в нее код выполнения операции В случае удаления записи: - Если запись не была синхронизирована: - удаляет запись - в случае успеха, удаляет все записи из системного лога об операциях с этой записью - Если запись была синхронизирована - добавляет в системный лог запись о попытке изменения записи - присваивет записи статус "удалена" - обновляет запись в системном логе, занося в нее код выполнения операции Премодерация может осуществляться через интерфейс администрирования сайта. В ходе премодерации контент-менеджер проверяет содержимое новых или измененных записей и устанавливает им статус "подтверждено" или "отклонено". При выставлении статус премодерации, он записывается также Синхронизация по расписанию должна выполняться программным решением, запускаемым по выбранному расписанию. Это решение: