Как мне реализовать базу данных транзакций EJB 3.0 - PullRequest
1 голос
/ 22 сентября 2011

В сущности CustomerTransactions у меня есть следующее поле для записи того, что купил клиент:

@ManyToMany
private List<Item> listOfItemsBought;

Когда я думаю об этом поле больше, есть вероятность, что оно может не сработать, потому что продавцам разрешено менятьИнформация о товаре (например, цена, скидка и т. д.).Следовательно, это поле не сможет записывать то, что клиент фактически купил, когда произошла транзакция.

На данный момент я могу только думать о 2 способах заставить ее работать.

  1. Я запишу детали транзакции в поле String.Я чувствую, что этот путь был бы беспорядочным, если бы мне понадобилось извлечь некоторую информацию о транзакции позже.
  2. Всякий раз, когда продавец изменяет информацию о товаре, я не буду обновляться непосредственно к полям этого предмета.Вместо этого я создам еще один новый элемент со всей новой информацией и оставлю старый элемент без изменений.Я чувствую, что этот способ лучше, потому что я могу легко извлечь информацию о транзакции позже.Тем не менее, плохая сторона в том, что моя таблица элементов может содержать много строк.

Я был бы очень признателен, если бы кто-нибудь дал мне совет, как мне решить эту проблему.

1 Ответ

1 голос
/ 22 сентября 2011

Я бы попробовал третий вариант примерно так.

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...