smptmhr / el-training

株式会社万葉の新入社員教育用カリキュラム
https://everyleaf.com/
2 stars 0 forks source link

step4 : アプリケーションの概要・テーブル図 #3

Open smptmhr opened 2 years ago

smptmhr commented 2 years ago

ペーパープロトタイプ

paper_prototype

ER図

ペーパープロトタイプをもとに作ったER図

ER図

あっているか不安な点

KessaPassa commented 2 years ago

ER図おっけー! あとはログイン画面やユーザ管理画面など他の画面も作って欲しい。おそらく開発するときになってどうしようと困ることになると思うので

KessaPassa commented 2 years ago

このアプリがどのような形で利用されるか(インターネットに公開するのか、社内向けか、etc…)

さっき話していたと思うので、ここについてもどこかに明記しておいて欲しいです

smptmhr commented 2 years ago

アプリの使われ方

想定するユーザの属性

使われ方

smptmhr commented 2 years ago

必要と思われるページ

一般ユーザ向け

管理者向け

エラーページ

KessaPassa commented 2 years ago

エラーページ 404 500

これもあるの良いね!

ログインページ

ログインするだけのページと、サインアップするページもあると思いました!

一般ユーザ向け

ここはユーザ自身の名前変更やアイコン変更ができるようなマイページはないということでOK? つくらなきゃいけない!という訳ではなく、ともがつくるアプリケーションで必要ないと思っているのであればなしでも大丈夫です!

smptmhr commented 2 years ago

サインアップするページもあると思いました!

その通りです!

ここはユーザ自身の名前変更やアイコン変更ができるようなマイページはないということでOK?

確かにマイページは必要そうですね。 そこで確認・編集できる属性は以下の3つかなと思います。

ユーザは自分のタスクしか見られないため、別のユーザを識別するためのアイコンは必要ないと考えてます。

・名前についての指摘を受けて 一人のユーザが異なるメールアドレスでアプリを使い分ける可能性もあると思い、
ワークスペース名(すなわちユーザ自身の名前とほぼ同義だが)を持たせるのはアリだと思いました。

KessaPassa commented 2 years ago

ユーザは自分のタスクしか見られないため、別のユーザを識別するためのアイコンは必要ないと考えてます。

お、どうしてそう思ったか書いてくれるのありがたい!その考えならアイコンはなしで良いね!

一人のユーザが異なるメールアドレスでアプリを使い分ける可能性もあると思い、 ワークスペース名(すなわちユーザ自身の名前とほぼ同義だが)を持たせるのはアリだと思いました。

なるほど。それはあるかもですね。 追加するのであればER図も更新して、ペーパープロトタイプも更新しちゃいましょう!

smptmhr commented 2 years ago

ペーパープロトタイプ修正

足りてなかったページも考慮してペーパープロトタイプを更新しました!

※「ユーザ一覧ページ」と「管理ページトップ」は合体させて問題なさそうなので一つにしました。

paper_prototype_v2

ユーザは自分のタスクしか見られないため、別のユーザを識別するためのアイコンは必要ないと考えてます。

どうしてそう思ったか書いてくれるのありがたい!

今回は想定される使われ方が個人で完結しているためです。
社内ツールのように複数ユーザが一つのワークスペースを使用する想定ならアイコンは必要かと思いますが、1ワークスペース 1ユーザなので!

smptmhr commented 2 years ago

ER図の修正

「ユーザ」エンティティに「ユーザ名」を追加 「タスク」エンティティから「カテゴリID」を削除 ER図_v2

KessaPassa commented 2 years ago

あ、ER図なにも問題ないと言ってたんだけれど、1つのタスクに対して複数のラベルを扱えるようにするには今のままじゃダメだったのに気がついた もし今のER図のままラベルを複数つけようとするとこんな感じになると思います!

tasks テーブル id label_id
1 1,2,3

これはジェイウォークといってできるだけ避けたいアンチパターンです sqlで検索するときにとても大変になってしまいます 😣 https://qiita.com/aconit96/items/24f790662d9b88a3ab74

なので交差デーブルというラベルとタスクの間にそれぞれを紐づけるテーブルをつくるようにしてみてほしいです https://post-output.com/185/

smptmhr commented 2 years ago

交差テーブルというラベルとタスクの間にそれぞれを紐づけるテーブルをつくるようにしてみてほしい

中間テーブルのイメージですね。 Qiitaの記事読んでなんとなくですが理解しました。ER図更新します!

smptmhr commented 2 years ago

指摘部分を反映させたER図こんな感じでしょうか。 ラベルとタスクをつなぐ中間テーブルを追加しました。 ER図_v3

KessaPassa commented 2 years ago

お、そんな感じ! テーブルの名前も 中間テーブル ではなくちゃんとした名前を今のうちにつけてあげましょう!テーブル作成(マイグレーション)のときに困ると思うので あとはタスクテーブルにある ラベルID(FK) が要らなくなるね

KessaPassa commented 2 years ago

ちょっと疑問に思ったことで確認なんだけれども、タスクグループはカテゴリを跨いで存在することはありえない? 例えば、タスクAとタスクBがあったとして、どちらもタスクグループ1に紐づいている。これがカテゴリ研究にどちらもあるならば問題なさそうだけれど タスクAはカテゴリ研究に、タスクBはカテゴリ授業に、みたいなことは起こり得ない?

smptmhr commented 2 years ago

更新しました! こんな感じでしょうか?

ER図_v4

smptmhr commented 2 years ago

タスクグループはカテゴリを跨いで存在することはありえない?

使用方法によっては起こり得ると思うんですが、今回はそこまでカバーしない(同一カテゴリの中で収める使い方を想定する)つもりでした! 今回、関連タスクという項目を設けた理由が、大きなタスクを分割して小さく管理することでタスクへの取り掛かりやすさをサポートすることなので、その目的であればカテゴリを跨ぐ必要はないかと思います。

KessaPassa commented 2 years ago

使用方法によっては起こり得ると思うんですが、今回はそこまでカバーしない(同一カテゴリの中で収める使い方を想定する)つもりでした! 今回、関連タスクという項目を設けた理由が、大きなタスクを分割して小さく管理することでタスクへの取り掛かりやすさをサポートすることなので、その目的であればカテゴリを跨ぐ必要はないかと思います。

理解。であれば大丈夫だね!

あと気になったのはタスク編集ページとかにある 重要度 はER図にないけれど書き忘れ? https://github.com/smptmhr/el-training/issues/3#issuecomment-1113196046

smptmhr commented 2 years ago

重要度は書き忘れです! 追加したのがこちらになります! ER図_v5

smptmhr commented 2 years ago

変更点