DB Design

Hallo zusammen

Kleine Frage ist es besser die Daten Konsistenz durch die DB zu gewährleisten (auch wenn man hierfür Trigger benötigt) oder macht man das besser in der Applikation?

Welche Erfahrungen habt Ihr gemacht?

Gruss Reen

Datenkonsistenz macht die Datenbank! Wer sagt nicht, das irgendwann ein Tool dazu kommt und das dann die Prüfungen nicht durchführt.

Trigger sind da eigentlich nicht nötig für eine saubere Datenbank mit entsprechenden Keys…

cu tb

Datenkonsistenz ist ein Grundjob der DB. Aber TRIGGER sind dazu eher nicht nötig. Möglicherweise erfindest Du grad rechteckige Räder.

Andreas

Na ja, intern werden z.B. Foreign Keys oder CHECKs auch als TRIGGER abgebildet :wink:
Und ein netter BEFORE Trigger kann bei umfangreicheren Prüfungen auch sehr hilfreich sein.

Hmm. Ich bin nicht sicher, ob ich mein Problem ohne Trigger lösen kann. Ich habe
folgende Relation:


CREATE TABLE apc_cluster (
ac_pk_id serial primary key ,
ac_fk_apc1 integer unique not null REFERENCES apc (a_pk_id),
ac_fk_apc2 integer unique not null REFERENCES apc (a_pk_id),
check (ac_fk_apc1 < ac_fk_apc2)
);

Ich habe Folgende Bedingungen, damit die Integrität gewähreistet habe:
ac_fk_apc1, ac_fk_apc2 <=> ac_fk_apc2, ac_fk_apc1 (dies habe ich mit der check
constraint erreicht).
Weiter dürfen 2 nodes jeweils nur in einer Cluster Config enthalten sein. (dies
habe ich zum teil mit der unique Bedingung erreicht.

Nun bleibt ich noch folgendes Problem (letzte Zeile):

ac_pk_id | ac_fk_apc1 | ac_fk_apc2
----------±-----------±-----------
1 | 1 | 2
2 | 3 | 4
3 | 5 | 6
4 | 6 | 7

Der Node 6 ist in 2 Konfigurationen. Ich bin der Meinung, dass ich das nur mit
einem Trigger verhindern kann? Oder gibt es einen check mit dem ich sowas
verhindern kann? In der Applikation abdecken? Ist mein Modell schlecht? Vielleicht kann mir ein erfahrener Designer weiterhelfen?

Gruss Reen