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


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : ЏгвЁ«Ё­ …ўЈҐ­Ё© ‚ «Ґ­вЁ­®ўЁз         2:5020/400     01 Mar 2003  12:40:03
 To : Lev Serebryakov
 Subject : Хранение нескольких версий объекта -- как?
 -------------------------------------------------------------------------------- 
 
 Fri Feb 28 2003 23:15, Lev Serebryakov wrote to Путилин Евгений Валентинович:
 
  LS> What do you think about sharp blades, Путилин?
 
  LS> [Answer on] [Путилин Евгений Валентинович wrote to Lev Serebryakov at [27
  LS> Feb 03 12:25]]:
 
  ПВ>> У меня есть рабочая БД, которая это делает.
  ПВ>> 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
 
  LS>  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о начинаеться свсистопляска при
  ПВ>> построение отношений, т.е. ссылки на объекты с версиями.
 
  LS>   крайне неудобно -- нельзя будет сослатся на конкретную версию, так как
  LS> они перенумеровываются при каждом изменении.
 
  Как раз удобно, UPDATE CASCADE для чего? При описании FK, просто два поля для
 ссылки. И тогда в запросе если надо вытащить вариант который был при создании
 то HOWOLD=FK_HOWOLD, а если текущий то HOWOLD=0.
  Hа самом деле у меня немного по другому сделано порождение версий не на
 каждый UPDATE а по внещнему условию. Т.е. объект может находиться в состоянии
 редактирования и в замороженом сотоянии. И новая верся создаеться в момент
 перехода из замороженного в редактируемое состояния. Плюс некоторые
 особенности реализации на FB. если выполнить команду update XXXX set
 HOWOLD=HOWOLD+1 where ID=:ID то у FB вылетит ошибка по PK. 
 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/166797e43abe3.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional