Máte pravdu - číslo 1 je nejlepší varianta.
Samozřejmě, na první pohled bych to zpochybnil (kvůli zkratkám), ale znalost obchodního pravidla, které zajistí, že zaměstnanec je ve spojení pouze s jednou společností - to dává smysl.
Navíc bych měl cizí klíč spojující id společnosti v tabulce zaměstnanců s id společnosti v tabulce kanceláře. V opačném případě umožníte, aby byl zaměstnanec ve spojení s firmou bez kanceláře. Pokud to není přijatelné...
Spouštěče jsou poslední možností, pokud vztah nelze demonstrovat v datovém modelu a servis logiky z aplikace znamená, že logika je centralizovaná – neexistuje žádná příležitost pro výskyt špatných dat, pokud někdo nezruší omezení (což znamená, že máte větší problémy ).