|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Lev Serebryakov 2:5030/661.1 25 Feb 2003 11:23:16 To : All Subject : Хранение нескольких версий объекта -- как? --------------------------------------------------------------------------------
Задача выглядит очеь стандартной, но решения я нигде найти не смог. Придумал
свое решение, но не уверен в том, на сколько оно хорошо...
Собственно, задача выглядит так: в базе (реляционной) хранятся объекты.
Хранятся они в двух таблицах (типы не важны):
CREATE TABLE ObjectCore (ID PRIMARY KEY, prop1, prop2, prop3);
CREATE TABLE ObjectProp (ID PRIMARY KEY, ObjectID, PropName, PropValue);
То есть, у объектов есть обязательные свойства и дополнительные. Дополнительных
может быть 0, а можнт -- много.
Хочется хранить версии объектов -- что бы изменение объекта не хатирадо
предыдущию информацию. Хочется хранить компактно -- что бы, скажем, при
изменении ожного дополнительного свойства не дублировались в новой версии все
остальные. Хочется иметь быстрый доступ к последним версиям -- что бы не
принципиально медленней варианта без версий (доступ к старым версиям может быть
на порядки дольше). Хочется хранить безопасно -- что бы два одновременных
изменения происходили в произвольном порядке, но, в результате, появлялись две
новые версии -- последняя и предпоследняя. Хочется в еще одну табличку класть
дату, автора и комментарий к изменению (это-то как раз самое простое)...
Да, хочется все это на стандартном SQL'е, без особенностей Oracle, Скажем.
Branch'и не нужны :)
Remember, pain is part of pleasure, All.
... Hынче в воздухе метил, а в воде стекло...
--- I try to be as sharp as I can
* Origin: Cave of Black Lion (2:5030/661.1)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/32843e5b19e7.html, оценка из 5, голосов 10
|