操作
設計 #3
未完了設計 #1: 開発運用プロジェクトのスケジュール
DB設計(テーブル・カラム設計)
開始日:
2023-10-31
期日:
2023-10-31 (約12ヶ月 遅れ)
進捗率:
0%
予定工数:
(合計: 0:00時間)
説明
DB設計¶
目的¶
- アプリケーションを開発する上で、データベースにあらゆるデータを格納するが、最適な形でデータを保存することが開発効率とパフォーマンスに影響する。
概要¶
- 概念設計
- データベースの目的・要件を決定する
- 必要な情報を整理してエンティティを抽出する
- ER図( Entity Relationship Diagram)を作成する
- 論理設計
- 正規化をおこなう
- 物理設計
- データ型を決定
- 設計を確認・調整する
DB設計に必要な四大要素¶
- エンティティ:データベース設計の対象業務において、管理すべき情報のこと(テーブル名に直結)
- 属性:エンティティに従属する項目のこと(カラム名に直結)
- リレーション:結び付きのあるエンティティ同士を関連させるものを関係
- 多重度:関連のあるエンティティ同士の相対的な位置付け(一対多とか)
DB設計の観点¶
- 構築するシステムの要件・仕様を理解しているか
- 仕様書から見えにくい箇所の想像ができるか
- 正規化がなされているか
- 将来性が考えられているか
テーブルの洗い出し¶
- 手順書テーブル
- ユーザーテーブル
- id
- メールアドレス
- 名前
- セッションテーブル
- user_id
- 期限日
- 作成日
- トークン
- 手順書とユーザーを紐づけるテーブル
- 手順ブロックテーブル
カラムの洗い出し¶
user_table¶
- 手順書を扱うユーザーを管理するテーブル
id(uuid) | email(string) | subscriber(string) |
---|---|---|
wrrg35g | aaa@gmail.com | aaaking |
session_table¶
- ユーザーログインのセッションを管理するテーブル
token | id(uuid) | expired | issued |
---|---|---|---|
cssvvwegoookqke | wrrg35g | 2023/12/01 | 2023/08/01 |
operation_table¶
- 手順書を管理するテーブル
id(uuid) | title(string) | date(datetime) | block(uuid) | tag(list[string]) | status(tf true=close) | user(uuid) |
---|---|---|---|---|---|---|
wf23n2 | DB移行 | 2007/01/12 | 2erfrge | mysql | true | wrrg35g |
g3kmge | v1.0リリース | 2007/01/13 | ef43gm | release | false | wrrg35g |
block_id¶
- 手順書内のコマンド群を管理するテーブル
id | title | command | operation_id | status |
---|---|---|---|---|
2erfrge | バックアップ | ~~~~~ | 1 | true |
ef43gm | 切り戻し | ~~~~ | 1 | false |
参考¶
操作