モデル駆動型アプリのサンプルとして「ねこ管理アプリ」を作ってみたシリーズ第2回。
今回は前回に引き続き、テーブルの作成とリレーションを作成していく。
2024/5/18:UIを最新版に更新。
テーブルの作成続き
前回に引き続きモデル駆動型アプリで使用するテーブルを作成していく。
「ねこ」テーブルは前回の記事で作成したので、今回はそれ以外のテーブルを作成。
「体重履歴」テーブルの作成
まずは「体重履歴」テーブルから作成。
前回同様[テーブル]タブの[新しいテーブル]から、[高度なプロパティを設定する]を押して、
表示名とスキーマ名を設定し、
プライマリ列をこのように設定して保存する。
※この列は後程オートナンバー(自動採番)に変更する。
※この列は後程オートナンバー(自動採番)に変更する。
テーブルの作成が完了したら、「体重」列と、
「日付」列を作成する。
列の作成が完了したので、「ねこ」テーブルとリレーションを作成する。
[新規]→[リレーションシップ]→[多対一]を選択して、
[新規]→[リレーションシップ]→[多対一]を選択して、
関連先に「ねこ」テーブルを選択して[完了]を押してリレーションを作成。
※本番では[全般]や[詳細オプション](特に[関連付け動作])もしっかりと設計した方がいいんだけど、今回はサンプルアプリなのでデフォルトで作成。
「体重履歴」テーブルトップに戻り、[リレーションシップ]を選択すると、
「ねこ」テーブルとのリレーションが張られていることが確認できる。
最後にプライマリ列「No」の型を「オートナンバー」に変更し、「体重履歴」テーブルの作成は完了。
最終的に、「体重履歴」テーブルの列(自動で作成されるものを除く)はこのようになる。
「キャットフード」テーブルの作成
続いて「キャットフード」テーブルを作成していく。
先ほど同様[新しいテーブル]から画像のように「キャットフード」テーブルを作成し、
「タイプ」列を(ローカル)選択肢で作成して、ウェットフードかドライフードかを選べるようにする。
続いて「カロリー」列を「小数」型で作成。
最後にテストデータを入れて「キャットフード」テーブルの作成が完了。
※felixやMiawMiawといった銘柄(さらに言うと企業)とかは別テーブルに分けた方がよいかもだけど、今回は省略。
※felixやMiawMiawといった銘柄(さらに言うと企業)とかは別テーブルに分けた方がよいかもだけど、今回は省略。
「食事履歴」テーブル
最後に「食事履歴」テーブルを作成する。
「新しいテーブル」から表示名とスキーマ名、プライマリ列を設定。
※プライマリ列は「体重履歴」のときと同様「No」という名前で作り、後ほどオートナンバー型に変更する。
続いて「日付」列と「給餌量」列を画像の設定で作成。
「体重履歴」のときと同様に「ねこ」テーブルと多対一のリレーションを作成。
「食事履歴」テーブルは「キャットフード」テーブルともリレーションが必要なので、こちらも多対一で作成。
最後に列「給餌カロリー」を計算式列で作成し、「キャットフード」とのリレーションを使用して自動でカロリーを計算するよう作成する。
テストデータを「食事履歴」テーブルに入れると、無事カロリーを自動計算してくれる。
これで今回作成する「ねこ管理アプリ」で使用するテーブルとリレーションの作成は完了したので、次回は実際にモデル駆動型アプリを作成しこれらのデータと紐づけていく。
コメント
テーブルリレーションの使い方を調べていて本サイトにたどり着きました。
本記事最後のカロリー計算
「[キャットフード]テーブルの[カロリー(/100g)]列」×「[給餌量(g)]列の値」 / 100
の計算式記載ですが、
“new_cat_food.cr1a4_calorie”のところは、 “new_cat_food.new_kcal_100g”ではないのでしょうか?
テーブルリレーションの理解が不十分なため的外れの質問をしていたら申し訳ありません。
コメントありがとうございます!
ご指摘の通り「new_cat_food.cr1a4_calorie」のところは「new_cat_food.new_kcal_100g」ですね。。。
記事を修正しました!ご指摘ありがとうございます!