学習[44]日目
本日の学習内容
データベース設計に関しての基本フローと用語の理解
データベース設計は主に下記の手順で進められます。
データベースで管理するエンティティの決定
↓
それぞれのデータの持つアトリビュートの決定
↓
エンティティ同士のリレーションの決定
↓
データを実際にデータベースのテーブルとして定義
上記に関する用語で新しく学習した用語一覧は下記になります。
●エンティティ
サービスの中で管理する必要のある情報や概念の事
エンティティの属性の事
例えば、SNSなどのサービスではユーザーや投稿内容などの情報がエンティティにあたるものでユーザーの持つ名前や年齢等はアトリビュートになります。
●リレーション
エンティティとエンティティとの間に存在する関係性の事
例えば、SNSサービスにおけるエンティティであるユーザーと投稿内容に関しては関係性があると言えます。
他にもデータベース設計に際して理解するべき基本的な用語を列挙します。
●主キー primary_key
テーブル内のレコードを判別するための識別子となるカラム
例えば、idという名前のカラムが主キーにあたる場合が多い
●外部キー foreign_key
異なるテーブルのレコードと関係性を持つ場合に必要なカラム
他のテーブルのレコードを識別するために使用する
railsにおける外部キー制約が付いているカラムの作成を行う場合には、
基本的にreference型を使用する方が楽!
※使用しない場合にはforeign_key: trueで外部キー制約にならない
その為、addで別に記述する必要性があるが、コードが多くなってしまう
また、外部キー制約をつける場合、インデックスは自動で付与されるらしい(未確認)
●not null 制約 null: false
テーブルの属性値にNULLが入ることを許さない制約
●一意性制約 unique
一意性とはユニークで他とは違うという意味で、一意性制約を設定した
カラムには同じ値を設定できなくなる
●インデックスの設定 add_index
データベースの機能の一つで、テーブル内のデータ検索を高速化すること可能
インデックスはカラムに対して設定することができ、設定したカラムでの
検索が高速になる
明日は実際にデータベースを設計するためのユースケース図とER図に関して学んでいきたいと思います。
時間に余裕があれば実際に書いて設計も進めていければと思います。
最後までお読み頂き有難うございます。