SQLのコーディンク効率を上げるER図の書き方
SQLコーディングを効率よく書くためにER図を書く際の留意点を教えてください。
素人ながらWEBアプリを要件定義~デプロイまで行いました。(フレームワークなしで)
その際、課題として感じたのが「SQL文が冗長で分かりにくくなっている」ということです。
特にJOIN命令が長くなる傾向にあります。
最初のER図から形が変化し、最終的には以下のようになりました。
(ちなみに制作したアプリは日報作成およびグラフ集計が目的です。)
最終版はcompanysテーブルから2又に分岐していますが、最初は全部のテーブルが数珠つなぎ状態でした。
なぜリレーションを変えたかですが、データを検索する際に数珠の頭と尻で距離が長くなり、
SQLのJOIN文が長くなりコーディングの負担が大きくなったからです。
しかし、この最終版でもまだSQL文の可読性が悪いと感じておりました。
例えばreportsテーブルを元にworksテーブルの情報を検索したいときに
とても不便に感じておりました。
今更ですが、worksとreportsを中間テーブルを介して結んでやればよかったのかもしれません。
または、ショートカット経路を作る(jobclasssesとreportsのリレーションを結ぶ)などすればよかったのかも…
以上の経験から判断するにER図は数珠状でなく蜘蛛の巣状のほうが良いのではないかと感じました。
ただER図が見にくくなってしまう可能性もあります。
この考え方はあっているでしょうか?
皆様の見解を伺えればと思います。
また数珠繋ぎの場合、どのようにして端から端までSQL文を短く記載できるかも教えて頂けないでしょうか?
以上、よろしくお願いいたします。