Welcome to Sign in | Help
in Search

data version

Last post 01-30-2007, 7:03 PM by ggciubuc. 5 replies.
Sort Posts: Previous Next
  •  01-30-2007, 4:52 PM 1603

    data version

    Se da tabela ce contine campurile
    (id
    id_entitate,
    value1,

    value2,

    value3,

    )

    Pt acest exemplu se cere o versionare a valorilor entitatilor.

    Ceva de genul entitatea(id_entitate) a avut pt value1 valorile ,x,y,z,; pt value2 valorile c,v,b ;pt value3 valorile p,o,i

    A intalnit cineva un examplu pt aceasta problema? 


  •  01-30-2007, 5:25 PM 1604 in reply to 1603

    Re: data version

    Ceva similar:

    T1 (id, id_entitate, versiune_curenta, value1, value2, value3)

    T2 (id, id_entitate, versiune, value1, value2, value3)

    Pentru update un trigger modifica in T1 versiune_curenta = versiune_curenta + 1, value1, value2, value3 si facea

    INSERT INTO T2 (id, id_entitate, versiune, value1, value2, value3)

    SELECT id, id_entitate, versiune_curenta, value1, value2, value3

    FROM deleted

     


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  01-30-2007, 5:58 PM 1607 in reply to 1604

    Re: data version

    Este o solutie buna.

    Insa imi ridica niste semne de intrebare.....

    1. Cum se va comporta triggerul daca am o tabela mare ?

    2. Cum se va comporta, daca se doreste mentinerea istoricul relatiilor, in care este implicata tabela mea?

  •  01-30-2007, 6:03 PM 1608 in reply to 1604

    Re: data version

    eu as face asa:

    as codifica coloanele value1 sa zicem c1, samd si as insera versionarile in tabelul urmator

    id_entitate,Coloana,Valoare,DataOra

    iata cum ar arata niste randuri:

    1,c1,a,30.01.2007 20:34:00

    1,c1,b,30.01.2007 20:35:00

    2,c2,d,30.01.2007 20:39:00

    ...

    unde 1 si 2  sunt coduri de entitati, c1,c2, codurile coloanelor corespunzatoare

    (inserarea o fac dintr-un trigger update)


    Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
  •  01-30-2007, 6:41 PM 1609 in reply to 1603

    Re: data version

    Pentru câteva idei interesante vezi şi http://ronua.ro/CS/forums/thread/8876.aspx

    Răzvan

  •  01-30-2007, 7:03 PM 1610 in reply to 1609

    Re: data version

    (Un pic off-topic insa intaratat de Razvan Smile)Vis-a-vis de principiul de versionare a unor date intr-o baza de date , iata cum se face in Oracle E-Business Suite:

    orice rand care este versionabil are 2 coloane de tip BeginDate si EndDate care semnifica de cand este valabila acea informatie si pana cand; daca vrei sa stergi informatia o poti face, insa o poti inactiva completand EndDate, astfel ca daca vrea cineva sa vada, sa zicem, ierarhii de departamente sau de salariati la diferite momente de timp o poate face foarte bine, sistemul manevreaza datele in functie de cele 2 coloane amintite mai sus.


    Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems