チーム開発の軌跡
初日2024年11月12日
グループ単位で行ったこと
- メンバーとの自己紹介
- 簡単なグループワーク
- 簡単な読み合わせ
- 簡易的なWBSの作成・提出
個人で行ったこと
- 今後の設計で扱うファイルの管理
- カリキュラムの「システム設計」の熟読
- ER図作成の用意
ER図作成について
XMLファイルを保存してdraw.ioで読み込む方法
運営が用意したXMLファイルを使用してテンプレにそって作成する感じ
基本的なER図作成の手順は
- エンティティを洗い出す(箱)
- 要件から属性を抜き出す(箱の中身)
- 重複するもの(繰り返し項目)は分割する
- 外部キーで置き換える
- マスタ項目を分割する
- 多重度を考える(つながりの時の大小関係)
この流れで作成する
今回の課題では「1. エンティティを洗い出す」は用意されている(不足はあるかも)
テーブル名の命名もすでに完成しているので今回はなし
基本的なルール
日本語で定義する
単語である
分かりやすい名前
スネークとかキャメルとかも統一、もしくはプロジェクトに合わせる
チーム開発では「2. 要件から属性を抜き出す(箱の中身)」から本格的に行う
実質的に2と3は同時に頭の中で考えておく、ついでに4の外部キーも頭の片隅に…
外部キー
同じ名前の人でも、違う認識をするためのキー
他の人はかぶらないはずのカラムを考える⇒簡単なのは各テーブルのPK
PK?
各テーブルの中で一意にレコードを識別するためのカラムです。
通常、テーブルごとに必ず1つのプライマリキーを持ち、そのカラムは重複することがありません。
PKはテーブルのレコードを正確に検索、更新、削除するために重要です。
マスタ項目
マスタテーブル⇒アクションによってデータの増減がないテーブル
取引が行われてもデータの変化がないジャンルテーブルという認識
マスタテーブルと反対なのが、トランザクションテーブル⇒データが蓄積されるようなテーブル
ジャンルテーブルのPKが「ジャンルで分けたいテーブルの項目になってる」
例
今までは「ジャンル分けしたいテーブル」のなかで、カラムとして「ジャンルA」「ジャンルB」を
扱ってきたが、新しいジャンルを増やしたり、編集する時にめんどくさいので、
「ジャンル」というテーブルを作成して。その中でA,Bがレコードとしてある。
そのレコードたちにはPKが割り振ってあるので、「ジャンル分けしたいテーブル」では
そのPKを指定すればジャンル分けができる
多重度
基本的には
- 1 対 1
- 1 対 多(N)
- 多(N) 対 多(N)
「1対1」と「多対多」は、あまり推奨されません
- 1対1のリレーションは、テーブルをまとめることができる
- 多対多のリレーションは、原則作ってはいけません
⇒多対多の回避方法は中間テーブルを作成する
中間テーブルに対する自分なりの解釈
・部活と生徒の関係で考えてみる
部活は複数あって、生徒も複数いる。
⇒1つの部活には複数の生徒が存在する
⇒1人は複数の部活を兼部できる
多対多をそのままリレーションをすると
⇒同じ項目が並んでしまう
⇒⇒組み合わせを考えるのが難しくなるって事
⇒⇒⇒テーブルは1つのID(指標)を決めることによってレコード(行)を特定できるはず
ここでの作業は「1対1」「1対多」「多対多」をすべて確認したうえで、
どうやって1対多にするか考える作業みたいなもん
2日目2024年11月13日
グループ単位で行ったこと
- 個人で作成したER図を見せ合い相談
- ER図の提出(1回目)
- 提出後のセルフチェック
- ER図の提出(2回目)
- 明日までの行動の確認
個人で行ったこと
- ER図の仕上げ
- テーブル定義書の作成
gitのつかうコマンド
「ブランチを切る」(新しい作業を行う)
git checkout -b 作業名
~作業する~
変更点の確認
git status
変更した箇所・追加した箇所だけアップ
git add -A
コミット
git commit -m "コメント"
リモートに挙げる(GitHubに反映)
git push origin 作業名
最新developとの差分を読み込む
git pull origin develop