我的对象应该保存对象还是对象ID?

时间:2016-09-15 21:39:54

标签: java android sqlite oop

例如我应该这样做

class MyObject {
    private Long subObjectId; //such as this
    private List<Long> subObjectIds; //or this
    //bunch of other fields omitted
}

class MyObject {
    private SubObject mySubObject; //such as this
    private List<SubObject> mySubObjectList; //or this
    //bunch of other fields omitted
}

哪一种被认为是典型/更好的方法?如果我想从数据库填充像MyObject这样的东西,我不知道我的对象是应该持有ID还是实际填充对象本身。

使用第二种方法被认为是不好的做法,但保持对象为空,直到我需要来填充它们(一种懒惰的人口方法)。

第一种方法的优点是它可以快速轻松地填充,但是如果我想访问ID指向的实际对象,那么我必须查询数据库并填充一些单独与SubObject分离的MyObject

我希望我的问题足够明确。谢谢。

1 个答案:

答案 0 :(得分:2)

如果你正在使用一些像hibernate这样的ORM,那么引用就是你的选择。

如果您没有使用ORM,则可以使用ID。如果您在没有ORM的情况下开始使用引用,那么您将开始遇到需要引用但您从数据库接收的所有内容都是id的情况,克服这些情况的唯一方法是编写自己的ORM。不要重新发明那个轮子。