LoginSignup
18
12

More than 3 years have passed since last update.

README データベース設計

Last updated at Posted at 2020-03-29

マークダウンで記述します。
自分の勉強用でメモします。
初学者の方は参考にしてください。

以下のようなテーブルを作成したとします。

usersテーブル   

Column Type Options
name string null: false, add_index: true
email string null: false, unique: true
password string null: false
password confirmation string null: false

意味を下記に記述した。

↓↓したのusersテーブルはテーブル名を記述する。
usersテーブル これはコメントアウトする。

↓↓ここはテンプレートで大丈夫です。  
|Column|Type|Options|
|------|----|-------|

|❶name|❷string|❸null: false, ❹add_index: true|

❶name

❶nameはカラム名。
そのカラムの名前。

❷string

❷stringはデータ型です。
種類は以下のようにあります。

string 文字列型
text テキスト(不定長文字列)型
integer 整数型
float 浮動小数点数型
decimal 固定長整数型
datetime 日時型
timestamp タイムスタンプ型
time 時刻型
date 日付型
binary バイナリ文字列型
boolean 真偽値型
references 他のテーブルへの外部キーの定義、_id が付いた整数などがあります。

❸null: false

❸null: false カラムにnullを許可しない
カラムのオプションです!!
NULLとは(空の値)のこと。
(null false制約など)
以下があります。

❹Usersテーブルのnameカラムにindexを張ることで、アルファベット順にnameを並べ替え検索しやすいようにしてくれます。

null: false カラムにnullを許可しない
unique: true カラムに同じ値を許可しない
foreign_key: true 他のテーブルへの外部キー制約をつける indexも自動付与
default: "oooooo" カラムに値が設定されなかった場合にデフォルトで格納される値を設定。
limit: 50 データ型の最大幅を指定。
対象となるデータ型は文字列タイプはstring型とtext型の2つ、数値タイプはinteger型とbinary型の2つ。
precision: 10, scale: 5 指定することで精度(最大桁数)とスケール(小数点以下の桁数)を指定。
対象となるデータ型は文字列タイプはdecimal型。

以下同様です。

|❶email|❷string|❸null: false, ❹unique: true|
❶email=カラム名
❷string=文字列型
❸null: false=カラムにnullを許可しない
NULLとは(空の値)空欄のこと!!!
❹unique: true=同じアドレスはダメということ。

アソシエーション

対象を1つ持っているなら、has_one

has_oneは自分のテーブルが対象テーブルを1つ持っている(複数持たない)場合に使います。対象テーブル側に自分のidのカラムがある場合に使います。
対象を複数持っているなら、has_many

has_manyは自分のテーブルが対象テーブルを複数もつ場合に使います。対象テーブル側に自分のidのカラムがある場合に使います。
自分が対象に所属しているなら、belongs_to

belongs_toは、自分のテーブルが対象テーブルのレコードに所属する(対象テーブルのidカラムがある)場合に使います。

18
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
12