【DB設計】テーブル定義書作成
ER図からテーブル定義書の作成をしていきます!
ER図同様、回答にならないよう、自身が悩んだところを備忘録として残します。
ER図の解説は以下から。
テーブル定義書とは
データベース内の各テーブルに関する情報をまとめたもの。テーブルの構造やカラムの定義、制約、関連性などを記載。
各要素の説明
項目 | 説明 |
---|---|
主キー(PK) | テーブル内の各レコードを識別するための特別なカラム。テーブル作成時に自動的に生成されるid。 |
外部キー(FK) | 別のテーブルとの関連性を表すためのカラム。他のテーブルの値を参照する。 |
データ型 | データの種類を指定し、そのカラムに格納できるデータの形式を制限する。 |
NOT NULL | カラムに空の値(NULL)を許可しない制約。必ず値が入る必要がある。 |
AUTO INCREMENT | 指定したカラムに自動的に連番を割り当てる機能。新しいレコードが追加されるたびに値が自動的に増加する。 |
INDEX | 特定のカラムに索引を作成し、データの検索処理を高速化する。 |
DEFAULT | カラムの初期値を設定する機能。レコードが追加される際に値が指定されていない場合、デフォルト値が設定される。 |
データ型の種類
以下に、一般的なデータ型の種類と具体例を表にまとめました。
データ型 | 種類 | 備考 |
---|---|---|
integer | 数値(整数) | |
decimal | 数値(精度の高い小数) | |
float | 数値(浮動小数) | |
string | 文字(短い文字列) | 255文字まで |
text | 文字(長い文字列) | |
date | 日付 | |
datetime | 日時 | |
time | 時刻 | |
timestamp | タイムスタンプ | |
binary | バイナリ | |
boolean | 真偽 | true, false |
ECサイトのテーブル定義書作成
会員(customers)
-
郵便番号や電話番号は「integer」でなく「string」を使用。
理由:郵便番号や電話番号は先頭に「0(ゼロ)」を使う場合がある。数値として格納すると、先頭のゼロが消えてしまう。(Excel等に打ち込んでみると0が消える) -
boolean(真偽値)の使い方
boolean型は、ある条件が成立するかどうか、特定のステータスを表すのに便利。
「is_」をカラム名の頭につけることで、条件が成立しているかどうかを表す真偽値であることがわかる。例えば、「is_active」(意味:有効である?)など。
今回はdefaultをfalseにすることで、初期値を「会員」とする。
商品(items)
販売ステータスはboolean型にする。defaultをtrueにし、初期値を「販売中」とする。
注文(orders)
enumとは
enum
は、データベースのカラムに対して、あらかじめ定義した値を持たせるための機能。
選択肢を作り、その選択肢から選ぶことができる。
enumだけではviewページにテキスト表示できないので注意
例:
enum status: { active: 0, inactive: 1, pending: 2 }
例えば上記の定義をした場合、データベースに保存されるのは0、1、2の数値で、viewページにも数値が表示される。テキストで表示するためには「enum_help」というGemを使えば、簡単にViewで扱える。
ひとりで作ってみたものなので、実際にチームで作成したものと違いますが参考までに。
チームで作成したもののほうがみんなの意見が集まりよりよいものになりました☆
Discussion