前提・実現したいこと
railsで家計簿アプリを作成しています。
テーブル設計で以下問題が発生しているため、相談させてください。
①子モデル(budgets)が複数の親モデル(monthlies・categories)を持ってしまう。
(テーブル設計のアンチパターンになってしまう。)
②budgetsのインスタンスをmonthlies・categoriesの両方に関連づけて保存する方法がわからない。
①を解消すれば②も解消すると考えています。
発生している問題・エラーメッセージ
現在作成している家計簿アプリの中で、毎月の予算を作成する際、科目別にできるよう実装中です。 例えば、1月の予算として、食費は1万円、交際費は2万円と設定するイメージです。 そのために現在設定しているテーブルは以下の3つです。 monthlies(月予算テーブル) カラム ・month(1月、2月) categories(支出の科目テーブル) カラム ・name(食費・交際費) budgets(予算テーブル) カラム ・price(支出金額) ・category_id(どの科目の支出なのか把握するため) ・monthries_id(どの月の予算なのか把握するため) budgetsにcategory_idカラムを持たせることで、金額と科目を関連づけ、 それをmonthliesのインスタンスにすれば良いと考えました。 fields_forを使用して、monthliesのインスタンスを作成する際にbudgetsも併せて保存できるようにしましたが、 そこからcategory_idを指定する方法がわかりません。 調べた結果、上記のようにbudgetsテーブルが複数の親モデルを持ってしまうのは、 アンチパターンなので避けるべきということがわかりました。どのように解消すべきかわかりません。 どなたか、教えていただけると幸いです。
試したこと
そもそも、テーブルが3つあることが誤りなのでは?と思い、monthliesとbudgetsを結合することを考えましたが、
うまくいきませんでした。
(月毎の予算表示する際、金額とカテゴリーの組み合わせをインスタンスとして持つテーブルがないとうまく表示できないため。)
補足情報(FW/ツールのバージョンなど)
参考にした記事
複数のテーブルに対して多対一で紐づくテーブルの設計アプローチ
回答1件
あなたの回答
tips
プレビュー