Van-e könyvtár / keret undo / redo változások sorok adatbázisban?

szavazat
2

Lehet címemet nem egyértelmű. I am looking for valamilyen verzió ellenőrzése az adatbázis táblákat, mint felforgatás nem fájlokon, mint a wiki nem.

Azt szeretné nyomon követni a változásokat jelentkezzen. Azt akarom, hogy kivonat és futtassa a diff fordított. (Visszavonás, mint egy svn merge -r 101: 100). Azt lehet szüksége indexelt keresés a történelemben.

Olvastam a „ Design Pattern for Undo Engine ”, de ez összefügg „Patterns”. Vannak bármit tudnék újra anélkül, hogy újra feltalálni a kereket?

EDIT: például banki tranzakcióit. Van oszlop „egyensúly” (és mások) frissített táblázatban. a felhasználó megtalálja a hibát az általa 10 nap múlva, és ő akarja szakítani / rollback az adott tranzakció megváltoztatása nélkül mások.

Hogyan lehet csinálni kecsesen az alkalmazás szintjén?

A kérdést 09/12/2008 15:08
a forrás felhasználó
Más nyelveken...                            


7 válasz

szavazat
1

Pedáns pontot. A bankszámláját például nem kap múlt a könyvvizsgáló / szabályozó.

Bármilyen hibás bejegyzéseket számlát kell hagyni ott a rekordot. Egy azonos és ellentétes korrekciós ügylet lenne érvényes a számlához. Valójában romba az eredeti ügylet, de így egy nagyon nyilvánvaló nyoma az eredeti hibát, és a korrekció.

Válaszolt 09/12/2008 16:05
a forrás felhasználó

szavazat
2

Martin Fowler kiterjed a téma minták dolgok idővel változni . Még minták és nem tényleges keret, hanem azt mutatja például az adatok, és hogyan kell használni.

Válaszolt 09/12/2008 16:19
a forrás felhasználó

szavazat
2

Jól jönne egy felülvizsgálati megközelítés minden rekordot, amely a követni kívánt. Ez azzal járna, megtartva egy sort a táblázatban minden felülvizsgálatára a rekordot. A feljegyzések lenne kötötte össze a közös „ID” és lekérdezhető a felülvizsgálati állapot "(pl Szerezd meg a legújabb„jóváhagyott”record).

Az alkalmazásban szint, akkor tudja kezelni ezeket a rekordokat egyenként és visszaállíthatja egy korábbi állapotra, ha szükséges, amíg rögzíti az összes szükséges információt.

[ID] [Revision Date] [Revision Status] [Modified By] [Balance]
1     1-1-2008         Expired           User1         $100
1     1-2-2008         Expired           User2         $200
2     1-2-2008         Approved          User3         $300
1     1-3-2008         Approved          User1         $250
Válaszolt 09/12/2008 16:40
a forrás felhasználó

szavazat
0

Ennek alapján a megjegyzést James Anderson, szerettem volna a felhasználói felület írjon egy új betét megszakításakor a tranzakciót. Úgy helyezze be az új rekordot a táblába, amely ugyanolyan értékeket, mint a törölt tranzakció kivételével ez az érték negatív szám helyett egy pozitív szám. Ha van egy szerkezet, amely magában valamit, hogy meghatározza a célja a tranzakció tennék mond törli, és a rekord számú, a tranzakció visszamondja.

Válaszolt 09/12/2008 17:05
a forrás felhasználó

szavazat
0

Megyek egy bi-időbeli adatbázis tervezés, amely megadja az összes adat elvégzéséhez szükséges és visszavonását, hogy ez azt jelenti, behelyezésénél több sort vagy egyszerűen törli a későbbi módosítások.

Van egy szép összeg a finomság egy ilyen adatbázis kialakítása, de van nagyon jó könyvet a témában:

Fejlődő Time-orientált adatbázis-alkalmazások SQL Richard T. Snodgrass

letölthető itt:

http://www.cs.arizona.edu/people/rts/tdbbook.pdf

Egy adatbázis-tranzakció lenne rossz ötlet, mert a zárakat okozna az adatbázisban - alapvetően adatbázis-tranzakciók legyen a lehető legrövidebb.

Bármi az alkalmazási rétegben, kivéve, ha van némi kitartás mechanizmus önmagában nem fogja túlélni alkalmazás újraindul (bár ez lehet, hogy nem követelmény).

Válaszolt 09/12/2008 18:02
a forrás felhasználó

szavazat
0

Ennek alapján a különböző megjegyzéseket egy lehetséges megoldás a problémára az lenne, hogy a „dátum hatékony” táblázatban.

Alapvetően hozzá érvényes-re korszerű és érvényes-to-date oszlopok minden asztalnál.

Az „aktuális” rekordot kell mindig egy valid_to_date a „2999/12/31” vagy valami arbiteraly magas érték. Ha az érték változik megváltoztatja az „érvényes-to-date”, hogy az aktuális dátum és helyezzen be egy új sort érvényes-from-időpontjától ma érvényes-to-date a „2999/12/31” másolja az összes oszlopok a régi sor, ha azok nem változtak.

Hozhat létre nézeteket "select all-oszlopok-kivéve-valid-xx-date táblázatból, ahol érvényes-to-date = '2999/12/31"

Amely lehetővé teszi az összes aktuális lekérdezést dolgozni változatlan.

Ez egy nagyon gyakori tecnique adattárház környezetben és ilyet árfolyam, ahol a tényleges időpontja fontos.

A visszavonás logikai nyilvánvalónak kellene lennie.

Válaszolt 10/12/2008 11:07
a forrás felhasználó

szavazat
0

Nem vagyok tisztában a konkrét mintát, bár én hoztak létre teljes visszavonás / audit történet használata előtt kiváltó okok és rowversions.

Van egy pár alkalmazások MS SQL, melyek segítségével vonóhálós át a naplókat, és nézze meg az aktuális változásokról.

Már használt egy úgynevezett Log Navigator vissza MS SQL 2000, hogy a használt hadd visszavonni egy adott történelmi ügylet - nem találom most mégis.

http://www.lumigent.com és http://www.apexsql.com tenni eszközök megtekintésére a naplókat, de nem hiszem, hogy bármelyik segítségével forgassa vissza.

Azt hiszem, a legjobb módja ennek az, hogy írjon az alkalmazás ezt szem előtt tartva - ahol van egy pár jó javaslatokat már itt, hogyan kell csinálni.

Válaszolt 10/12/2008 11:20
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more