Я подумал, что пришло время взглянуть на базы данных OO и решил использовать db4o для моего следующего небольшого проекта - небольшой библиотеки.
Рассмотрим следующие объекты: Книга, Категория.
Книга может быть в 0-n категориях, а Категория может быть применена к 0-м книгам.
Моя первая мысль состоит в том, чтобы иметь объект объединения, такой как BookCatecory, но после небольшого Googling я вижу, что это не подходит для "Real OO".
Таким образом, другой подход (рекомендуется многими) заключается в том, чтобы иметь список в обоих объектах: Book.categories и Category.books. Одна сторона обрабатывает отношения: Book.addCategory добавляет категорию в Book.categories и книги в Category.books. Как обрабатывать фиксации и откаты, когда в одном вызове метода было изменено 2 объекта?
Каковы ваши мысли? Второй подход имеет очевидные преимущества, но для меня, по крайней мере, первое "чувствует" право (лучше нормировано).