Приведение хранилища к реляционной форме (постановка)

Материал из GedeminWiki
Версия от 21:38, 8 октября 2009; SYSDBA (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Идеи:

  1. Вместо упаковки и записи всего-всего в один большой блоб будем использовать реляционную таблицу для хранения древовидной иерархии.
  2. Создадим бизнес-объект для работы с таблицей.
    1. Сооветственно, отпадет необходимость в частных окнах для просмотра хранилища и его элемента. Нас вполне устроит обычная форма просмотра и диалоговое окно.
  3. Сохраняем неизменной как иерархию классов Хранилища, так и их интерфейсы.
    1. Вводим признак того, что объект хранилища был изменен.
  4. При загрузке хранилища из базы данных создаем объекты хранилища.
    1. Помечаем их все, как неизмененные.
    2. Данные БЛОБ объектов грузим только при первом обращении к соответствующим объектам.
  5. При сохранении хранища сохраняем/добавляем только измененные объекты.
    1. При удалении объекта хранилища, соответствующую запись удаляем из базы сразу же.
  6. Если открыт бизнес-объект хранилища, то он синхронизируется с соответствующим объектом хранилища:
    1. При удалении записи в наборе данных бизнес-объекта, соответствующий объект удаляется (но, при этом обращения к базе данных не делается. Мы и так удалили соответствующую запись через БО).
    2. При изменении или добавлении записи в набор данных БО, изменяется/добавляется соответствующий объект хранилища. При этом флаг изменения у него не выставляется.
    3. Сопоставление объекта хранилища и записи в наборе данных БО осуществляется через ИД. Для этого в объект хранилища добавляется соответствующее свойство.
    4. А синхронизация в обратную сторону?
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты