0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DB設計について

Posted at

1.概要

データベースの設計を行ったので、その内容をまとめます。

2.使用ツール

データベース設計には、Notionを使用しました。

3.事前に考えたほうがいいもの

データベースを設計するためには、まず要件を明確にすることが重要です。要件が明確だと構造や具体的なテーブル名やカラム名を決めやすくなります。

例:扱うか情報を具体的にあげる

例えば、ユーザー情報を管理する場合、以下の項目を考慮します。

  • ユーザーid
  • ユーザー名
  • パスワード

4.設計

具体的な構造や名称を決めていきます。

設計には下記テーブルを使用しました。

 カラム名 初期値 NULL許容 上限値 外部キー
id int - NO NO NO

1.カラム名

カラム名は、SQLで推奨されているスネーク記法(例: user_id)で記入したほうがいいです。
また、英語かつ簡潔で分かりやすいものにしたほうが他の開発者にも分かりやすいです。

規則の例

  • 時間を表す場合は、末尾に_atを付ける(例: create_at, update_atなど)
  • フラブを表す場合は、頭にis_を付ける (例: is_deletedなど)

2.データ型

データベースで使用される主なデータ型を説明します。

  • string : 短い文字列
  • text : 長い文字列
  • integer : 整数
  • float : 浮動小数
  • decimal : 精度の高い小数
  • datetime : 日時
  • timestamp : タイムスタンプ
  • time : 時間(年、月、日は変更できないデフォルト値)
  • date : 日付
  • binary : バイナリデータ(0,1)
  • boolean : 真偽値 true,false
  • object : JSON形式のデータや配列など、複雑な構造を持つデータを格納可能

3.初期値

初期値は、あらかじめ設定しておくとで空白を防ぐことができます。

例: boolean型でfalseを初期値で設定

SQL構文の例:

DEFAULT デフォルト値

4.null許容

NULL許容は、空白を許すかどうかの設定です。
データが必須の場合は、NULLを許容しない設定にすることによって、必ずデータが入力させれようにします。

例: パスワードなど

SQL構文の例:

  • 作成時
NOT NULL
  • 追加時
AFTER TABLE テーブル名 MODFY カラム名 SET NOT NULL

5.制限値

制限値を設けることで、想定外のデータを防ぎます。
例えば、文字列の長さや数値を制限することで、不正なデータが入力されるのを防ぎます。

この設定は通常、バックエンド側でバリデーション(Validation)によって制限します。


6.外部キー

外部キーは、あるテーブルのカラムが別のテーブルの主キーを参照することによりテーブル間の関連性を構築する。これによりデータの整合性を取ることができます。

例:社員と部署のデータ

  • 社員テーブルにある「部署カラム」は、部署テーブルを参照する
  • 外部キーを設定することで、「部署コード」が部署テーブルに存在するものだけ登録可能になります

SQL構文の例:

FOREGIN KEY (部署カラム) REFERENCES 部署テーブル

5.最後に

今回の設計で、6つの事項を考慮しましたが、データベースの規模や複雑さに応じて柔軟に対応する必要があります。
適切な設計を行うことで、効率的で堅牢なデータベースを構築できます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?