我认为现在是时候研究一下面向对象数据库了,所以我决定在我的下一个小项目 - 一个小型图书馆中使用db4o。
考虑以下对象:Book(书),Category(类别)。
一本书可以属于0到n个类别,一个类别可以应用于0到m本书。
我的第一个想法是有一个连接的对象,比如BookCatecory,但是经过一些搜索之后,我发现这对于“真正的OO”来说并不合适。
因此,另一种方法(被许多人推荐)是在两个对象中都有一个列表:Book.categories 和 Category.books。其中一边处理关系:Book.addCategory将Category添加到Book.categories,并将Book添加到Category.books。当在一个方法调用中修改两个对象时,如何处理提交和回滚呢?
你有什么想法?第二种方法有明显的优势,但至少对我来说,第一种方法“感觉”正确(更好规范化)。