私はオブジェクト指向データベースの設計に不慣れであり、Google App Engine用のJDOでクラスをどのように構成する必要があるか、特に1対多の関係を理解しようとしています。
百貨店の構造を構築しているとしましょう。百貨店には多くの部門があり、各部門には多くの商品があります。したがって、Productクラスのリストである変数を持つDepartmentというクラスが必要です。
@PersistenceCapable
public class Department {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private String deptID;
@Persistent
private String departmentName;
@Persistent
private List<Product> products;
}
@PersistenceCapable
public class Product {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private String productID;
@Persistent
private String productName;
}
ただし、1つの製品を複数の部門に含めることができます(たとえば、バッテリーが電子機器や家庭用品にある場合など)。次の質問は、OODの世界でデータを複製せず、多数の部門に製品データのコピーを1つだけ持つにはどうすればよいかということです。次の質問は、特定の製品を削除したとしましょう。各部門は、その製品が削除されたことをどのようにして知るのでしょうか。