DB設計で意識すること
はじめに
データベース設計に関する話が挙がった際に話したことを振り替えつつまとめていきます。
理想論を雑に書いているだけです
やり直しや不要な複雑化は極力抑えたい
特に初期の設計段階でミスが重なると、大規模なやり直しが必要となることはよくあります。
一方で、過度に複雑な設計は理解やメンテナンスを困難にします。
シンプルさと拡張性のバランスを保てていないとコスト増加や納期遅延に繋がり、やがて案件は地獄と化すので、DB設計は慎重に行う必要があります。
現行の仕様を把握する
データベース設計を行う前に、システムやビジネスの現行の仕様を把握することは非常に重要です。
必要なデータの種類や関係性、取り扱うデータの量などを理解することで、適切なデータベース設計を行います。
後述していく通りに進めるには現行の仕様を把握するのが第一です。
目的の明確化
基本的なところですが、データベースを導入する目的と主な用途、どのように使用されるのかなど具体的なユーザーを想定して設計を始める必要があります。
後から大きな仕様変更が必要になるケースもあるので、不要な作業工程を省くためにも、目的に添ったデータベースの設計を心掛けます。
将来の実装を考慮に含める
これは予測可能な範囲で。
将来的に必要となる可能性がある機能や拡張に対応できるように設計することも重要です。
しかし、予測しきれない未来に対する過度な最適化は避け、適切なタイミングでのリファクタリングを視野に入れるイメージで良いと思いました。
正規化を行う
データの冗長性を排除し、データの整合性を保てるように設計を行うのが基本です。
適切な正規化を行うためには、データベースの性能やクエリの複雑性など、多くの要素を考慮する必要があります。
適切な命名を行う
データベースの各要素に名前をつける際は、他の開発者がデータベースを理解しやすいように可能な限り省略せず、その要素が何を表しているのか一目でわかる名前を付けます。
さいごに
データベース設計はそのシステムやビジネスの要件に大きく依存するため、一概に最適な設計が存在するわけではないため、状況を考慮した上で相談することも大切であると考えています。
おしまい
コメント
本記事の内容は以上になります!
プログラミングスクールのご紹介 (卒業生より)
お世話になったプログラミングスクールであるRUNTEQです♪
こちらのリンクを経由すると1万円引きになります。
RUNTEQを通じて開発学習の末、受託開発企業をご紹介いただき、現在も双方とご縁があります。
もし、興味がありましたらお気軽にコメントか、TwitterのDMでお声掛けください。