2011-09-22 54 views
1

在CustomerTransactions實體,我有以下字段來記錄客戶買了什麼:我應該如何實現事務數據庫EJB 3.0

@ManyToMany 
private List<Item> listOfItemsBought; 

當我想詳細瞭解此領域,有一個機會,它可能無法正常工作因爲商家被允許改變商品的信息(例如價格,折扣等)。因此,此字段將無法記錄客戶在交易發生時實際購買的內容。

目前,我只能想到2種方法使其工作。

  1. 我會記錄交易細節到一個字符串字段。我覺得如果我以後需要提取關於交易的一些信息,這種方式會很麻煩。
  2. 每當商家更改商品信息時,我都不會直接更新到商品的字段。相反,我會用所有新信息創建另一個新項目,並保持舊項目不變。我覺得這種方式更好,因爲我以後可以輕鬆提取有關交易的信息。然而,壞的一面是我的Item表可能包含很多行。

如果有人能給我一個關於如何解決這個問題的建議,我將不勝感激。

回答

1

我會嘗試第三個選項是這樣的。

public class Item { 
    private String sku; 

    private double currentPrice; 
} 

public class Customer { 
    private String name; 

    private List<Transaction> transactions; 
} 

public class Transaction { 
    private Item item; 

    private Customer customer; 

    private double pricePerItem; 

    private double quantity; 

    private String discountCode; 
} 

我會留給你制定出JPA映射。

+0

感謝您的建議!我有強烈的感覺,它會很好地工作:D –

+0

不客氣。 :-) –

相關問題