naatsuuki / new_lifeplan

0 stars 0 forks source link

ER図の追加 #3

Closed naatsuuki closed 3 months ago

naatsuuki commented 4 months ago

ER図を作成しました。ご確認のほど、よろしくお願いいたします。

https://www.figma.com/design/AqaYkw8ILpG6gk6l2BxjCb/ER%E5%9B%B3?node-id=0-1&t=mH9udoubnZmobmtT-0

tmtkzk0823 commented 4 months ago

ご提出ありがとうございます。 ER図の変更履歴を残しながら、やり取りを行いたいため、コメント欄に作成したER図のスクリーンショットを掲載していただけますでしょうか。(Gyazo・マークダウン)

naatsuuki commented 4 months ago

スクショをお送りします。 よろしくお願いします。

Image from Gyazo

naatsuuki commented 4 months ago

確認ありがとうございます。 作成し直しました。よろしくお願いいたします。

https://www.figma.com/design/LZPw9SOnypyR8vniMf5uCl/ER%E5%9B%B3%EF%BC%92?node-id=0-1&t=w5vuYEpYu5sPox2f-0

Image from Gyazo

ky0613 commented 4 months ago

提出ありがとうございます。 以下コメントになります。


naatsuuki commented 4 months ago

確認ありがとうございます。

再度考え直しました。 今回私が考えているアプリが、ログイン機能(ユーザー登録機能)なし、データ保存機能なし(表を表示して終わり)というシンプルなアプリになります。 その場合には以下のようなER図リレーション線なし(PersonとAgerangeに関係性なし)、FKキーなしになりますか。

Image from Gyazo

naatsuuki commented 4 months ago

確認ありがとうございます。 以下のイメージをしております。 よろしくお願いいたします。

◾️Person テーブルの役割 Person テーブルは、ユーザー自身およびユーザーが入力する他の人(子供や親など)の情報を保持する役割を考えています。 これにより、特定の西暦におけるそれぞれの年齢を計算し、比較表示するため基本情報を提供できると考えています。

・ユーザー自身の情報を保持(名前、出生年など) ・ユーザーが追加する他の人の情報を保持(名前、出生年など) ・入力された情報に基づき、指定された年数範囲の年齢を計算する基準となる

◾️Person テーブルのカラム id: 一意の識別子(プライマリキー) name: 名前(例: "自分", "太郎", "次郎") birth_year: 生まれた西暦(例: 1985, 2010)

◾️AgeRange テーブルの役割 AgeRange テーブルは、特定の年齢範囲に対応する情報を保持する役割と考えています。 これにより、ユーザーがチェックボックスを選択した際に、該当する年齢範囲に色付けを行います。

・各年齢範囲に名前と色を割り当てる ・表示する年齢範囲を特定し、ユーザーが選択した場合に色付けを行う

◾️AgeRange テーブルのカラム id: 一意の識別子(プライマリキー) name: 年齢範囲の名前(例: "幼", "小", "中", "高", "大", "老後") start_age: 年齢範囲の開始年齢(例: 3) end_age: 年齢範囲の終了年齢(例: 6) color: 色(例: "lightblue", "lightgreen")

Tsuchiya2 commented 4 months ago

対応ありがとうございます。 私からもコメントしますね。


■Personテーブル ・このテーブルで名前や生年月日を登録するようですが、登録したデータを何に活用するのでしょうか。

自分が何歳のときに子供が何歳で、親が何歳になっているのか知りたかった・ライフプランなど深く考えることのない時でも、自分の年齢と身近な人との年齢推移を並べてみたら単純に面白そうと思った

↑を実現するだけならフロントエンド(JavaScript)で入力フォームに記入された値を元に、10年ごとに併記して表示するとかでも良いかと思ったのですがいかがでしょうか。

■確認 ・「AgeRangeテーブルで年齢範囲に対応する情報」とありますが、こちらは何に使用できるのかが不透明に感じました。Personとも紐づいていないようなので、「老後・60・120・red」というレコードがあった場合、それが何に使用されるのかが分からなかったです。Personsテーブルに入力されたbirth_yearを元にどこに分類されるかというのであれば、リレーションが必要かと感じました。

一度、どういうサービスで、ユーザーにどんなデータを入力してもらう必要があるのか、どういった出力をするサービスなのかを整理していただいて、ER図の修正及び説明をお願いいたします。

naatsuuki commented 4 months ago

確認ありがとうございます。 今回実現したい内容を考えると(↓に記載している内容です。)データとして保存したいものはなく、フロントエンドのみの実装で良さそうです。この場合にはER図はなし?となるという認識であっていますでしょうか。 ご確認のほど、よろしくお願いいたします。

■Personテーブル ご指摘の通り、今回実現したいアプリの内容からすると、フロントエンド(JavaScript)のみの実装で問題ありません。 ユーザーの西暦入力よりユーザーの0歳〜100歳の表を表示(1歳ずつ増やしていきたいです。)、その横にその他の比較したい方の年齢を表示したいということが実現したいので、データ保存する必要はありません。

■AgeRangeテーブル こちらもフロントエンドのスクリプトで定義し、年齢範囲に基づいて表示した表を色付けする方法で良いです。 実現したい内容としては、上記の仕様に加えて、ライフプランを考える上で参考にしたい時期の年齢を色付け表示し、視覚的にわかりやすくしたいと思っています。 (幼(3~6歳)小(7~12歳)、中(13~15歳)、高(16~18歳)、大(19~22歳)、老後(65歳〜))

shota-hope commented 3 months ago

コメントありがとうございます。

フロントのみで実装可能とのことですが、READMEの以下の部分を考えると、ユーザーは表示される内容を一度確認して終わりではなく、そこからライフプランを考えるのではないでしょうか?

■サービスの利用イメージ 自身のライフプランを考える上で活用できる

上記の仮説があっているのであれば、やはりログイン機能などを実装し、いつでも確認できるようにするなど、追加機能の検討をするのもいいかと思いました。

ご確認よろしくお願いします。

naatsuuki commented 3 months ago

確認ありがとうございます。

確かにログイン機能があった方が過去の履歴をパッと調べられて良いと思いました! ただ私のイメージでは、調べたいときにユーザー登録などせずにパっと調べられるものを作りたいという想いがありましたが、そのまま進めるのはやめた方が良いでしょうか。

何度も申し訳ありません。 よろしくお願いいたします。

ky0613 commented 3 months ago

ただ私のイメージでは、調べたいときにユーザー登録などせずにパっと調べられるものを作りたいという想いがありましたが、そのまま進めるのはやめた方が良いでしょうか。

制作としての機能的な厚みが欲しい場合は、ユーザー登録や「自身のライフプランを考える上で活用できる」というのに必要な機能などがあると良いと思いました。

naatsuuki commented 3 months ago

確認頂きましてありがとうございます。 ユーザーログイン機能を追加して、作成した表をいつでも参照できるようにしようと思います。 以下修正したER図です。よろしくお願いいたします。

https://www.figma.com/design/jz70f8uORC4mAQN50OAlw9/ER3?t=nbymIWTZ7PlAuWuo-0

Image from Gyazo

Tsuchiya2 commented 3 months ago

対応ありがとうございます。 以下コメントになります。


■AgeTable ・table_title, table_dateともにinteger型ですが、どんな値が入って、それをどの用に活用予定かをREADMEに記載していただけますか。(データの型からは推測の域を出なかったため)

naatsuuki commented 3 months ago

確認ありがとうございます。 先ほどのデータ型間違っていました。申し訳ありません。 修正したER図とREADMEを共有します。よろしくお願いいたします。

https://www.figma.com/design/iMjFEPYghODKwrAwdu9LIS/ER4?t=H9t08G3cPVM9L5Sb-0

Image from Gyazo

Tsuchiya2 commented 3 months ago

対応ありがとうございます。 jsonb型にされていますが、ここにはどんな値が入る予定でしょうか。もし複数のデータをいれるようでしたら別途テーブルに切り出して、1対多の関係性にする方が良いかもしれません。

naatsuuki commented 3 months ago

確認ありがとうございます。

dataには以下入る予定です。 ・year(ユーザーの0~100歳の西暦) ・name(ユーザーの名前、比較する人の名前) ・age(ユーザーの年齢、比較する人の年齢)

以下のようなテーブルの方が良いでしょうか。 Image from Gyazo

Tsuchiya2 commented 3 months ago

概ね良いかと思います。LGTMです。 修正が必要になった際は適宜修正して開発を進めましょう。