Du har rätt - #1 är det bästa alternativet.
Visst, jag skulle ifrågasätta det vid första anblicken (på grund av genvägar) men att känna till affärsregeln för att säkerställa att en anställd bara är relaterad till ett företag - det är vettigt.
Dessutom skulle jag ha en främmande nyckel som relaterar företagets ID i tabellen för anställda till företagets ID i kontorstabellen. Annars låter du en anställd vara närstående till ett företag utan kontor. Om det inte är acceptabelt...
Triggers är en sista utväg om förhållandet inte kan påvisas i datamodellen, och service av logiken från applikationen innebär att logiken är centraliserad - det finns ingen möjlighet för dålig data att uppstå, om inte någon släpper begränsningar (vilket betyder att du har större problem ).