3
我是新來的面向對象的數據庫設計,我想了解我應該如何構建我的JDO的類應用程序引擎,特別是一對多的關係。JDO架構:一對多關係和級聯刪除
比方說,我正在構建一個百貨公司的結構,其中有很多部門,每個部門都有很多產品。所以我想要一個名爲Department的類,其中一個變量是Product類的列表。
@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;
}
但是一個產品可以在多個部門(如電池可以在電子產品和家居用品)。所以接下來的問題是,如何在OOD世界中複製數據,並且在多個部門中只有一個產品數據副本?接下來的問題是,假設我刪除了一個特定的產品,每個部門如何知道它被刪除?
你會說在我的特殊例子中,我真的應該使用無主的一對多關係嗎? http://code.google.com/appengine/docs/java/datastore/relationships.html#Unowned_Relationships – adam 2010-06-09 01:16:42
如果您需要了解某個特定產品的部門,那麼雙向關係會非常容易。如果你不需要這麼做或者經常這樣做,那麼它可能不是必需的。我真的沒有看到任何傷害。 – 2010-06-09 05:16:41