Je hebt gelijk - #1 is de beste optie.
Toegegeven, ik zou het op het eerste gezicht in twijfel trekken (vanwege de shortcuts), maar als je de bedrijfsregel kent om ervoor te zorgen dat een werknemer alleen gerelateerd is aan één bedrijf, is dat logisch.
Bovendien zou ik een externe sleutel hebben die het bedrijfs-ID in de werknemerstabel relateert aan het bedrijfs-ID in de kantoortafel. Anders laat u een werknemer verwant zijn aan een bedrijf zonder kantoor. Tenzij dat acceptabel is...
Triggers zijn een laatste redmiddel als de relatie niet kan worden aangetoond in het datamodel, en het onderhouden van de logica van de applicatie betekent dat de logica gecentraliseerd is - er is geen mogelijkheid voor slechte gegevens, tenzij iemand beperkingen laat vallen (wat betekent dat je grotere problemen hebt ).