0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【テーブル設計】どう進めればいいの?となった話

Posted at

はじめに

最近、業務でテーブル設計を任せてもらう機会がありました。
ただ、新規サービスのテーブルを1から設計するのは初めてで、「どう進めたらいいんだっけ?」と頭が真っ白に。

そんな中、先輩エンジニアに相談して、進め方のポイントを色々と教えてもらいました。
このドキュメントは、その内容を自分なりに整理したメモです。

※この記事は「要件定義フェーズが終わっていて、基本設計フェーズからアサインされた」ケースを想定しています。

1. システムの仕様を理解する

ゴール

  • 各画面の仕様をざっくり8割くらい理解している状態を目指す(もちろん理想ではありますが)。

やること

以下の資料を読み込む、または実際の画面を見ながら仕様を確認する:

  • 画面一覧

  • 機能一覧

  • 画面モックアップ

  • その他関連資料

ポイント

仕様に関する疑問はこの段階でできるだけ潰す。不明点は関係者にすぐ確認する。

  • この画面のこの要素って何のためにある?
  • 登録や更新のフローはどうなっている?
  • 入力項目や出力項目の意味は?

2. エンティティを洗い出す

ゴール

  • システムで扱う「もの(エンティティ)」を書き出して整理する。

エンティティ(Entity)とは、データベースやデータモデル内で管理・識別される「対象(オブジェクト)」を指します

エンティティは以下のような具体的な対象を表すことができます。
物理的な対象(例:顧客、商品、店舗)
抽象的な概念(例:注文、契約、売上)
イベントや取引(例:支払い、予約、ログイン履歴)

やること

  • 各画面に登場する「もの」を書き出す
    例:顧客一覧画面 → 顧客
    例:書類一覧画面 → 書類

  • 機能を実現するために必要な「データのかたまり(=エンティティ)」を洗い出す

  • 各エンティティが持つ属性(カラム候補)を洗い出す
    例:顧客というエンティティなら「名前」「住所」「性別」「年齢」など

ポイント
自分はスプレッドシートに「画面名」「出てくる要素」「必要なエンティティ」「属性候補」などを整理することで、視覚的に全体を把握しやすくしています。

3. エンティティ同士の関連性を確認する

ゴール

  • エンティティの関係性を整理し、ER図を作成する。

やること

各エンティティの間にどんな関係があるかを見極める:

  • 1対多
    例:1つの会社に複数のユーザーが所属

  • 1対1
    例:1ユーザーに1つの詳細情報が紐づく場合

  • 多対多
    例:1人のユーザーが複数のプロジェクトに参加、プロジェクトにも複数ユーザーが参加

4. テーブル設計書に落とし込む

ゴール

  • 実際のテーブル定義(設計書)を作成する。

やること

各エンティティの属性(カラム)に対して、以下を設定:

  • NULLを許可するか

  • ユニーク制約が必要か

  • デフォルト値は?

  • 主キー(PK)はどれか?

  • 外部キー(FK)は必要か?

  • オートインクリメントは必要か?

  • usersテーブル
論理名 物理名 データ型 サイズ PK NULL DEFAULT UNIQUE FK AUTO_INCREMENT
ユーザーID id BIGINTEGER - × - × ×
名前 name VARCHAR 255 x × - x × ×
メールアドレス email VARCHAR 255 x × - × ×

※設計書のフォーマットはプロジェクトに合わせる。

おわりに

今回まとめた進め方は、あくまで自分が初めてテーブル設計に取り組んだときの学びを整理したものです。
プロジェクトやチームによってやり方は変わるかもしれませんが、「最初にどこから手をつければいいか」で迷っている方の参考になれば嬉しいです。

参考文献

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?