0

以下のように2つのテーブルがあるとしましょう。

FoodType:

ID | 名前| ...追加フィールド..。
---------------------------------------------
1 | フルーツ| ..。
2 | 野菜| ..。
食べ物:

ID | FoodTypeId | 名前
----------------------
1 | 1 | アップル
2 | 1 | オレンジ
3 | 2 | にんじん
4 | 2 | ほうれん草
5 | 1 | 梨

のクラスを構成する場合、オブジェクト全体ではなくFood、どのような場合に定義する方がよいでしょうか。FoodTypeIdFoodType

すなわち

public class Food
{
    public int Id {get; set;}
    public int FoodTypeId {get; set;}
    public string Name {get; set;}
}

vs

public class Food
{
    public int Id {get; set;}
    public FoodType FoodType {get; set;}
    public string Name {get; set;}
}

public class FoodType
{
    public int Id {get; set;}
    public string Name {get; set;}
}
4

1 に答える 1

3

FoodTypeオブジェクトに関する他の情報を頻繁に使用する必要がない場合は、IDを保存する方が適切であり、その情報のフェッチと入力にはかなりの労力がかかります。

追加情報を頻繁に使用する場合、またはそれを取り込むための労力が十分に小さい場合は、実際の食品タイプのオブジェクトを保存することをお勧めします。

もちろん、他のハイブリッドな状況もあります。たとえば、IDと実際のオブジェクトの両方を持っているが、実際のオブジェクトを特定の状況で入力する代わりに「null」にしたり、実際のオブジェクトを特定のフィールドにのみ入力したりします。参照されるオブジェクト。さらに洗練されたオプションでは、IDではなく実際のオブジェクトが使用されますが、その使用法に基づいて、遅延または熱心にデータが入力されます。

于 2012-11-01T16:58:05.007 に答える