0

假设我有两个表如下:

食物类型:

身份证 | 姓名 | ... 附加字段 ...
---------------------------------------------
1 | 水果 | ...
2 | 蔬菜 | ...
食物:

身份证 | 食物类型 ID | 姓名
----------------------
1 | 1 | 苹果
2 | 1 | 橙子
3 | 2 | 萝卜
4 | 2 | 菠菜
5 | 1 | 梨

当我为 构建一个类时,在什么情况下只定义而不是整个对象Food会更好?FoodTypeIdFoodType

IE

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

对比

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 回答