Hallo
Und wie würde es aussehen, wenn ich PostgreSQL verwenden würde? Ich bin denke ich mal sowieso nicht so in der Materie drin, als das ein Umstieg so aufwändig wäre (zumal mir auch noch einige andere Leute zu PostgreSQL geraten haben).
CHECK-CONSTRAINTS helfen hier auch nicht, ich zitiere aus dem entsprechenden Handbuchabschnitt:
<zitat>
CHECK ( expression )
The CHECK clause specifies an expression producing a Boolean result which
new or updated rows must satisfy for an insert or update operation to
succeed. Expressions evaluating to TRUE or UNKNOWN succeed. Should any row
of an insert or update operation produce a FALSE result an error exception
is raised and the insert or update does not alter the database. A check
constraint specified as a column constraint should reference that column's
value only, while an expression appearing in a table constraint can
reference multiple columns.
Currently, CHECK expressions cannot contain subqueries nor refer to
variables other than columns of the current row.
</zitat>
Die sauberste Lösung wären Stored Procedures. Du erzwingst die Verwendung dieser Stored Procedures, indem *kein einziger* DB-Benutzer das INSERT oder UPDATE-Recht für diese Tabelle erhält, nur Ausführberechtigungen für die entsprechenden SPs.
Freundliche Grüße
Vinzenz