![見出し画像](https://assets.st-note.com/production/uploads/images/142823998/rectangle_large_type_2_d3d849611851c171e21fa58183a74434.png?width=1200)
Photo by
marutomo20
サービス設計
設計をしよう
基本設計
要件定義の内容を、開発に必要な内容へまとめること
外部設計とも
詳細設計
実際に書くべきコードを洗い出す作業
画面遷移図
どの画面でどんな操作をしたらどのページに移動するかを図で表記したもの
手書きでも専用アプリを使っても伝わればok
PicTweetの画面遷移図を確認しよう
サインイン/ログインページ
・トップページ(共有された写真を一覧表示するページ)共有された写真の詳細ページ
共有写真を追加するページ
共有された写真の編集ページ
マイページ
DBデーターベース設計
DB設計とは、開発で使用するDB(データベース)の表を設計すること
具体的に考える項目としては、「テーブル」や「カラム」、「関連付け(アソシエーション)」など
エンティティ
サービスで扱われるデータ自体
※エンティティはテーブルと等しい粒度で決める必要があるため、可能な限り「異なるジャンルの情報」は混合させないように
モデリング
モデリングとは、エンティティの分類や関連付けなどを行い、模型のように表すこと
エンティティを参考にDBを設計
デリングされたDBへさらに詳細な設計をしていく工程
正規化 せいきか
正規化とは、データベースの構造を効率的でシンプルな形にすること
非正規形 何もしていない状態
第一正規形 重複する値やカラムを分離する
第三正規形 情報が混在するエンティティを分離する
制約
制約とは、データを扱う際に制限をかけることです。バリデーションの仕組みと似ている
NOT NULLノット ヌル制約
NOT NULL制約は、テーブルの属性値にNULL(空の値)が入らないように制限
一意性制約
一意性制約は、テーブル内で重複するデータを禁止する制約
主キー制約
レコード情報を識別するための項目・・・idカラムの項目
外部キー制約
外部キーの元になるデータと参照するデータの整合性を保証する制約
マイグレーションファイルに書く
チェック制約
チェック制約は、値が保存される際に条件を満たしているか