Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erzwingen Sie Uniques über mehrere Tabellen hinweg

Sie haben Recht - Nr. 1 ist die beste Option.
Zugegeben, ich würde es auf den ersten Blick in Frage stellen (wegen der Verknüpfung), aber die Kenntnis der Geschäftsregel, um sicherzustellen, dass ein Mitarbeiter nur mit einem Unternehmen verbunden ist - es macht Sinn.

Außerdem hätte ich einen Fremdschlüssel, der die Firmen-ID in der Mitarbeitertabelle mit der Firmen-ID in der Bürotabelle in Beziehung setzt. Andernfalls erlauben Sie einem Mitarbeiter, mit einem Unternehmen ohne Büro verbunden zu sein. Es sei denn, das ist akzeptabel...

Auslöser sind ein letzter Ausweg, wenn die Beziehung nicht im Datenmodell nachgewiesen werden kann, und die Wartung der Logik aus der Anwendung bedeutet, dass die Logik zentralisiert ist – es gibt keine Möglichkeit, dass fehlerhafte Daten auftreten, es sei denn, jemand hebt Einschränkungen auf (was bedeutet, dass Sie größere Probleme haben). ).