複雑なエンティティをシンプルにする
http://www.plantuml.com/plantuml/svg/SoWkIImgAStDuKhDAyaigLHujdd5isdj2jLS4CRpgQkUzc_dqjNbUhbm-TDrYnutRNxSlETnSoVNqwbjJoStmlbGzS-cRe2oNhPFVBcmb-jf-wuNlTkXnhnixNtPqFXiwTeN3QqOEgSlVJQp2QeUogdbSaZDIm6w3W00#.png
エンティティの中に様々なイベントで更新される属性が頻出している状態。こういった場合は複数の概念が混在している。
リソースの「更新」が複雑さの源泉
http://www.plantuml.com/plantuml/svg/SoWkIImgAStDuKhDAyaigLHujdd5isdj2jLS4CRpgQkUzc_dqjNbUhbm-TDrYnutRNxSlETnSoVNqwbjJoStmlbGzS-cRe2oNhPFVBcm5oOyVUcpcKrSjQYsF6tVzQ9t-zFr-vxkduDk8qGERZr2AqH2eHf3nSlMtfSDZS-MhdtHq0ft5bGLt7wezsfgTFEhiRY22ul3QlDrQsgWrd8vfEQb04CB0000#.png
注文と出荷の概念を分けただけではなく、複数の注文を1つの出荷に収めるという要求も満たせた。なお中間テーブルと呼びがちだが物理設計時の名前であって、記事中では交差エンティティと記述。 エンティティの数が増えていくことが「複雑だ」といって嫌がる人がいる。それはエンティティの数が増えれば記憶しておくものが増える=認知不可が高いと捉えて「複雑だ」という場合がある。
シンプルにしていくルール
1. エンティティに複数概念、役割、責務が混在していないように分解する
2. エンティティをグルーピングして一度に見るべき範囲を狭める