-2

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: 質問を非公開にします。

4

1 に答える 1