以下のように、会社、部署、社員のテーブルがあるとします。
これは例として作ったものでして、複数部署兼務などは考えないものとします。
companies id PK departments id PK company_id employees id PK company_id department_id
社員の所属会社を調べるとき、employees.department_idがあればemployees.company_idがなくても所属会社は一意に決まります。
しかしemployees.company_idをなくすと、会社に所属する全社員を取得するとき、全部署を取得してから各部署の所属社員を取得するか、includes
などを使ってJOINしてから絞り込みをすることになると思います。
なので、気分的には引っかかるものの、company_idとdepartment_id両方持たせる上記の設計にしたくなるのですが、これは普通でしょうか?
今回は推移関係が2段階だけでしたが、これが何段階にもなった場合はどうでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。