設計

システム開発における外部設計 PART3 テーブル定義

概要

フリーランスエンジニア スリーネクスト

外部設計の中で画面遷移図や画面設計書、ビジネスロジックについて説明しました。今回はデータベース設計・テーブル定義書・になります。

データベース設計とは

一昔前まではシステム開発するときに、そのシステムを完成させるためにどのようなデータベースのテーブル構造にするのかを設計することです。

2019年4月現在ではMySQLやPostgreSQLといったRDB系のデータベースから KVSといったRedisやMemcache、それにドキュメントDBといったBigquery、RedShift、CloudSpannerやCosmosDBといったNewSQLと多種多様になります。

システムを作るときにどの機能にどのデータベースを使いそのデータベースのテーブル構造をどうするのかということが今現在のデータベース設計と言います。

さらにFirebaseという機能も使うことが多くなったので FirebaseのAuthenticationやFireStoreについても考える必要が出てくる場合が出てきました。

データベース設計の最初の仕事はエンティティの抽出

ある機能に対してどのような項目が必要なのかを洗い出します。例えば、靴のオンラインショップだった場合、顧客がいて靴があります。他には売上、税金、注文履歴、商品、商品情報、顧客情報と様々な機能が出てきます

上記に関するエンティティは何か洗い出してみます。

  • 注文番号
  • 売上
  • 注文数
  • 名前
  • 詳細
  • 値段
  • 発売日
  • 送料
  • 商品の登録日

まだまだ足りないですが上記の情報が要素(エンティティ)になります。

今度はグルーピングをします。商品に関するエンティティ、売上に関するエンティティ、ユーザーに関するエンティティという具合に分けていきます。分けたものを一つのグループにしたらそれがテーブルになります。

簡単なテーブル定義書のサンプルをこちらに貼ってます。ご参考までに

そこからさらにユーザーと商品の関連するところを見つけます。それがリレーションです。こちらもサンプルを貼ってますのでご参考までに

全体設計の中でのデータベース設計

設計の手順としては画面ができてからデータベースを構築するのですが、最近では WebもiPhone、AndroidアプリもAPIを使って連携することが当たり前になってきています。
そのため以下の手順に変わってきました。

画面の設計 → APIインターフェース仕様 → データベース設計

まとめ

ちょっと複雑だと思います。流石にこの文章では説明しきれないのでデータベースの設計については以下を見ていただくと理解しやすいと思います。

外部設計関連記事


システム設計
外部設計 PART4 APIインターフェース仕様設計書

システム開発における外部設計の説明です。今回はAPI仕様書についての記載方法を記事にしました。Swaggerといった便利なAPI仕様書作成ツールについても言及しています。

続きを見る


システム設計
外部設計 PART2 画面設計と遷移図 ビジネスロジック

外部設計について今回の第2部は画面遷移図、画面設計書、ビジネスロジックについて説明していきます。画像を取り入れながらどのように作成していけば効率的なのかを解説していきます。

続きを見る


システム設計
外部設計 PART1 方針設計書

システム開発における外部設計とは何か。どのような成果物があるのかを説明していく予定です。第1部は外部設計とは何かと方針設計についての説明をしています。

続きを見る

-設計