0
0

More than 3 years have passed since last update.

Laravelで愛犬のお世話記録アプリを作るまで(3)【DB設計】

Posted at

はじめに

我が家の愛犬の世話は、家族で分担しています。
家族間で情報を共有し、愛犬の体調管理をスムーズにするために、散歩や餌の時間・量、排泄の回数などの記録(以下、お世話記録とする)を手軽に行えるアプリを作りたいと思います。

バックナンバー

(1)【構想】
(2)【開発環境】
(3)【DB設計】 < 今回はここ

DB設計

どんなテーブルのデータベースが必要なのか考えていきます。
最終的にはグループウェアのように、複数人で一匹のペットに関する記録を投稿できるようにしたいですが、処理が複雑になりそうなので、まずは一人で使う前提です。

テーブル1:users

カラム名 内容 カラムタイプ 備考
id ユーザID bigint(20) unsigned
name ユーザ名 varchar(255)
email メールアドレス varchar(255)
password パスワード varchar(255)
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

テーブル2:walks(さんぽ)

カラム名 内容 カラムタイプ 備考
id ID bigint(20) unsigned
user_id ユーザID bigint(20) unsigned
recorded_on お世話の実行時刻 dateTime
time 散歩した時間 integer 単位:分
note メモ text
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

テーブル3:pees(おしっこ)

カラム名 内容 カラムタイプ 備考
id ID bigint(20) unsigned
user_id ユーザID bigint(20) unsigned
recorded_on お世話の実行時刻 dateTime
amount integer 選択肢(少なめ/ふつう/多め)
color integer 選択肢(薄い黄色/黄色/濃い黄色/赤/その他)
odor におい integer 選択肢(ふつう/くさい/異臭)
note メモ text
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

テーブル3:poops(うんち)

カラム名 内容 カラムタイプ 備考
id ID bigint(20) unsigned
user_id ユーザID bigint(20) unsigned
recorded_on お世話の実行時刻 dateTime
amount integer 選択肢(少なめ/ふつう/多め)
color integer 選択肢(薄い茶色/茶色/濃い茶色/赤/その他)
odor におい integer 選択肢(ふつう/くさい/異臭)
note メモ text
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

テーブル4:foods(ドッグフードのリスト)

カラム名 内容 カラムタイプ 備考
id ID bigint(20) unsigned
name ドッグフード名 varchar(255)
maker メーカー名 varchar(255)
calorie_published 基本カロリー integer 単位:kcal/100g
note メモ text
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

テーブル5:feeds(ごはん)

カラム名 内容 カラムタイプ 備考
id ID bigint(20) unsigned
user_id ユーザID bigint(20) unsigned
recorded_on お世話の実行時刻 dateTime
food_name_1 ドッグフード名1 varchar(255)
amount_1 量1 integer 単位:g
food_name_2 ドッグフード名2 varchar(255) ※ドッグフード切替時のブレンドに対応
amount_2 量2 integer 単位:g
calorie 摂取カロリー integer 単位:kcal、ドッグフード名と基本カロリー、量から計算
note メモ text
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

テーブル6:cares(その他のお世話リスト)

カラム名 内容 カラムタイプ 備考
id ID bigint(20) unsigned
name お世話名 varchar(255)
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

テーブル7:others(その他のお世話)

カラム名 内容 カラムタイプ 備考
id ID bigint(20) unsigned
user_id ユーザID bigint(20) unsigned
care_name お世話名 varchar(255)
recorded_on お世話の実行時刻 dateTime
note メモ text
created_at 作成日時 timestamp
updated_at 更新日時 timestamp

今回は以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0