3つのクラスがあるとしましょう:
ユーザー
建物
車
これらにはそれぞれ関連するプロパティがあります。例えば
ユーザーは名前、年齢、電子メールを持っています
建物は年齢、部屋、fire_alarmを持っています
車はブランド、座席、トップスピードを持っています
ユーザーと建物、ユーザーと車の関係を格納するデータベースがあるとします。
私のBuildingクラスでは、save_buildingメソッドにはuser_idが必要です。
ここで 2 つの選択肢があります。
1) Buildingクラスでuser_idプロパティを再作成するか(冗長で壊れやすいため、 Carクラスでも複製する必要があります)、または2)ユーザー オブジェクトを直接参照してuser_idを取得することができます。
これらはどちらも「正しい」ようには見えません。
属性を設定するときは、それらも検証し、それらの検証のエラーをオブジェクト自体に保存します。オプション2を使用すると、作業中のオブジェクトをチェックするだけでなく、save_building メソッドを続行できるようにする前に、他のオブジェクトのエラーをチェックする必要があります。
オプション1は正しい方法ですか、それともオプション2ですか?
編集:わかりやすくするために、データベース関係テーブルは次のとおりです。
user_buildings: user_id, building_id
user_cars: user_id, car_id
Edit2: 質問を非公開にします。