Vous avez raison : la 1 est la meilleure option.
Certes, je la remettrais en question à première vue (à cause des raccourcis), mais connaître la règle commerciale pour s'assurer qu'un employé n'est lié qu'à une seule entreprise – c'est logique.
De plus, j'aurais une clé étrangère reliant l'identifiant de la société dans la table des employés à l'identifiant de la société dans la table du bureau. Sinon, vous autorisez un employé à être lié à une entreprise sans bureau. Sauf si c'est acceptable...
Les déclencheurs sont un dernier recours si la relation ne peut pas être démontrée dans le modèle de données, et la maintenance de la logique de l'application signifie que la logique est centralisée - il n'y a aucune possibilité que de mauvaises données se produisent, à moins que quelqu'un supprime les contraintes (ce qui signifie que vous avez de plus gros problèmes ).