phpbar.de logo

Mailinglisten-Archive

Tabelle mitÄnderungen

Tabelle mitÄnderungen

Cybot 4t2.com-mysql at tekkno4u.de
Don Mar 27 08:25:53 CET 2003


Ing. Thomas Kolditz wrote:
> ein datensatz wird per eingabemaske (php) editiert - und soll wieder in
> geänderter form in die DB eingetragen werden.
> 
> davor soll aber die änderung erkannt und mitprotokolliert werden.
> 
> ziel:
> 
> beim datensatz ein button "archiv" mit all den veränderungen in laufe
> der zeit.
> 
> ich habe folgenden denkansatz:
> 
> bevor das UPDATE gefahren wird soll der datensatz noch einmal davor
> rausgeholt werden und mit den neuen daten verglichen werden - ist eine
> änderung in einem feld, dann schreibt das script das in eine
> "veränderungstabelle".
> 
> richtiger weg ?? oder gibt es da etwas in mysql, das das von haus aus
> geht?
> 
> bin schon am verzweifeln, da der weg in PHP steinig wird, weil über 50
> felder...

Hallo,

ich würde es so machen

- auslesen des datensatzes (SELECT)
- speichern des datensatzes (UPDATE)
- überprüfen ob der datensatz wirklich aktualisiert wurde
(MYSQL_AFFECTED_ROWS)
- wenn wirklich ein update vorlag speichern des originale datensatzes
nochmals z.b. in anderer tabelle mit

datatable:

ID   | DATA   | TIME
----------------------------
1    | 001    | ..020
2    | 123    | ..043
3    | XXX    | ..076
...

historytable

ID   | DATA   | TIME
----------------------------
1    | 000    | ..001
2    | 100    | ..003
3    | AAA    | ..005
2    | 108    | ..011
2    | 222    | ..020
3    | BBB    | ..060
3    | XYZ    | ..065
...

man könnte dies natürlich auch in einer tabelle machen, muss dann beim
select halt immer den aktuellsten satz einer ID nehmen

wenn die datentabelle aus sehr vielen spalten besteht aber meißtens nur
wenige oder gar nur eine geändert wird könnte man die historytablle auch
wie folgt aufbauen

datatable:

ID   | DATA1  | DATA2  | TIME
------------------------------
1    | 001    | x001   | ..020
2    | 123    | x123   | ..043
3    | XXX    | xXXX   | ..076
...

historytabelle

ID   | SPALTENNAME  | DATA | TIME
----------------------------------
1    | DATA1        | 000  | ..001
2    | DATA2        | x100 | ..003
3    | DATA1        | AAA  | ..005
2    | DATA1        | 100  | ..011
2    | DATA2        | x120 | ..020
3    | DATA2        | xABC | ..060
3    | DATA1        | XYZ  | ..065
...

so viel von mir, viel spaß beim weiterknobeln.. ;-)

-- 
Sebastian Mendel

info at sebastianmendel.de

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com


-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive