Главная страница


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз         2:5020/400     27 Feb 2003  13:25:19
 To : Lev Serebryakov
 Subject : Хранение нескольких версий объекта -- как?
 -------------------------------------------------------------------------------- 
 
 Tue Feb 25 2003 10:23, Lev Serebryakov wrote to All:
 
  LS> What do you think about sharp blades, All?
 
  LS>   Задача выглядит очеь стандартной, но решения я нигде найти не смог.
  LS> Придумал свое решение, но не уверен в том, на сколько оно хорошо...
 
  LS>   Собственно, задача выглядит так: в базе (реляционной) хранятся объекты.
  LS> Хранятся они в двух таблицах (типы не важны):
 
  LS>   CREATE TABLE ObjectCore (ID PRIMARY KEY, prop1, prop2, prop3);
  LS>   CREATE TABLE ObjectProp (ID PRIMARY KEY, ObjectID, PropName,
  LS> PropValue);
 
  LS>  То есть, у объектов есть обязательные свойства и дополнительные.
  LS> Дополнительных может быть 0, а можнт -- много.
 
  LS>  Хочется хранить версии объектов -- что бы изменение объекта не хатирадо
  LS> предыдущию информацию. Хочется хранить компактно -- что бы, скажем, при
  LS> изменении ожного дополнительного свойства не дублировались в новой версии
  LS> все остальные. Хочется иметь быстрый доступ к последним версиям -- что бы
  LS> не принципиально медленней варианта без версий (доступ к старым версиям
  LS> может быть на порядки дольше). Хочется хранить безопасно -- что бы два
  LS> одновременных изменения происходили в произвольном порядке, но, в
  LS> результате, появлялись две новые версии -- последняя и предпоследняя.
  LS> Хочется в еще одну табличку класть дату, автора и комментарий к изменению
  LS> (это-то как раз самое простое)...
 
  LS>   Да, хочется все это на стандартном SQL'е, без особенностей Oracle,
  LS> Скажем.
 
 У меня есть рабочая БД, которая это делает.
 CREATE TABLE ObjectCore (ID,HOWOLD integer,  prop1, prop2, prop3,PRIMARY
 KEY(ID,HOWOLD));
 CREATE TABLE ObjectProp (ID , ObjectID, PropName,PRIMARY KEY(ID,HOWOLD)
 Идея такая HOWOLD=0 это текущая версия объекта. HOWOLD=1 предыдущая. и так
 далее при update , HowOld=HowOld+1 where HowOld>0. Потом копируеться запись
 insert into ObjectCore (ID,HOWOLD,  prop1, prop2, prop3)
 select ID,1,prop1, prop2, prop3 from ObjectCore where HOWOLD=0
 Все это выполняеться до update.
 
 При это выбока последних версии данных просто добавить условиие HOWOLD=0. Hе
 сильно усложняет. Hо начинаеться свсистопляска при построение отношений, т.е.
 ссылки на объекты с версиями.
 
 С уважением Путилин Евгений Валентинович
 
 --- ifmail v.2.15dev5
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Хранение нескольких версий объекта -- как?   Lev Serebryakov   25 Feb 2003 11:23:16 
 Хранение нескольких версий объекта -- как?   ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз   27 Feb 2003 13:25:19 
 Re: Хранение нескольких версий объекта -- как?   Ilya Zvyagin   28 Feb 2003 11:24:15 
 Re: Хранение нескольких версий объекта -- как?   ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз   28 Feb 2003 11:52:46 
 Re: Хранение нескольких версий объекта -- как?   Ilya Zvyagin   28 Feb 2003 12:04:08 
 Re: Хранение нескольких версий объекта -- как?   ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз   28 Feb 2003 18:11:17 
 Re: Хранение нескольких версий объекта -- как?   Ilya Zvyagin   28 Feb 2003 18:56:59 
 Хранение нескольких версий объекта -- как?   Lev Serebryakov   01 Mar 2003 00:15:10 
 Хранение нескольких версий объекта -- как?   ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз   01 Mar 2003 12:40:03 
 Хранение нескольких версий объекта -- как?   Lev Serebryakov   03 Mar 2003 22:31:28 
 Хранение нескольких версий объекта -- как?   ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз   04 Mar 2003 11:36:52 
 Re: Хранение нескольких версий объекта -- как?   Ilya Zvyagin   03 Mar 2003 11:42:20 
 Re: Хранение нескольких версий объекта -- как?   ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз   03 Mar 2003 12:27:34 
 Re: Хранение нескольких версий объекта -- как?   Ilya Zvyagin   03 Mar 2003 20:19:48 
 Re: Хранение нескольких версий объекта -- как?   Andrei N. Sobchuck   03 Mar 2003 20:55:30 
 Re: Хранение нескольких версий объекта -- как?   ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз   04 Mar 2003 11:17:33 
Архивное /su.dbms/16679782a85f0.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional