データベース設計について
Rubyonrails初学者になります。備忘録のために記事を投稿します。
現在はチーム開発カリキュラムを学習しており、データベース設計という単語がでてきました。
データベース設計とは?
どのような情報をどういった構造でデータベース化するのか設計することをデータベース設計というらしい。
データベース設計に必要なこと
1.エンティティを洗い出す
エンティティとはテーブルのこと。実装したい機能に従って必要なテーブルを作成する。
2.要件から情報を抜き出す
例えば商品テーブルでいくと、商品名であったり、商品の紹介文であったり、カラムにあたる部分
3.重複する部分は分割する
この部分は私にとって理解が難しかった部分にあります。
注文テーブルを例にとって理解しました。
例えばこのような注文テーブルがあるとします。(雑ですがご容赦ください)2つ悪いところがありまして、1つ目は空のカラムが存在していることです。空のカラムが存在しているとデータベースとして運用する際にエラーが発生する要因になるとのこと。
2つ目はカラムが増える可能性があること。現状では購入商品は2種類のみですが、今後購入した人が3種類や4種類購入することもあるかと思いますが、そうした場合に新たにカラムを追加する必要があります。一度作成したデータベースを後から更新するのは、バグなどを生むリスクが大きいため、よろしくないとのことです。
ではどうすればいいのかというと、もう一つ新たにテーブルを作成する必要があります。
下の2つが新しいテーブルになります。注文商品テーブルには注文IDと紐づけできるように注文IDのカラムが追加してあります。
以上のことからデータベースを作成する際には
・空のカラムは存在していないか
・カラムを増やす必要がないか
この2つに注意して作成する必要があります。
途中ですが、いったん休憩のため後日作成いたします。拙い文章で申し訳ありません。間違いがあれば、ご指摘いただけると幸いです。