そうです-#1が最善の選択肢です。
確かに、私は一見質問しますが(ショートカットのため)、従業員が1つの会社にのみ関係していることを確認するためのビジネスルールを知っていることは理にかなっています。
さらに、employeeテーブルのcompanyidをofficeテーブルのcompanyidに関連付ける外部キーがあります。それ以外の場合は、従業員がオフィスのない会社に関係することを許可します。それが受け入れられない限り...
トリガーは、データモデルで関係を示すことができない場合の最後の手段であり、アプリケーションからロジックを提供することは、ロジックが一元化されることを意味します-誰かが制約を削除しない限り、不正なデータが発生する可能性はありません(つまり、より大きな問題があります) 。