gpt4 book ai didi

java - caritem 和 Invoice 的生命周期关系..对实现 Shoppingcart 的疑问

转载 作者:行者123 更新时间:2023-12-02 08:15:04 24 4
gpt4 key购买 nike

我正在尝试像大多数 javaee 和 hibernate 新手一样实现一个购物车网络应用程序。我读了很多教科书,但仍然心存疑虑。我希望有人能帮助我纠正我的想法。

我实现了一个 Product 类和一个 CartItem。 CartItem 具有“产品”字段和“数量”字段。当用户想要购买产品时,他将 CartItem 添加到购物车。

为了对用户的购买进行建模,我编写了一个带有一组 CartItem 对象的 Invoice 类。它还有一个客户领域。现在,我对相应的表以及它们的生命周期应该如何关联有点困惑。

创建发票记录后(当用户购买某些商品时),相应的商品是否应该保存在数据库中?或者一旦用户购买了商品,是否应该删除caritem记录?

如果有人能阐明这些,那就太好了。

谢谢

标记

源代码:

class CartItem {
private Long cartItem_id;
private Product product;
private int quantity;
...
}

class Invoice {
private Long invoice_id;
private Customer customer;
private Set<CartItem> cartItems;
private Date invoiceDate;
private int invoiceNumber;
private double totalAmount;
...
}

我创建了表 CARTITEM 和 INVOICE,如下所示。

CREATE TABLE CARTITEM(
CARTITEM_ID BIGINT NOT NULL PRIMARY KEY IDENTITY,
QUANTITY INTEGER,
PRODUCT_ID BIGINT,
FOREIGN KEY(PRODUCT_ID) REFERENCES PRODUCT(PRODUCT_ID)
)

CREATE TABLE INVOICE(
INVOICE_ID BIGINT NOT NULL PRIMARY KEY IDENTITY,
INVOICE_NUMBER INTEGER,
INVOICE_DATE DATE,
TOTAL_AMOUNT DOUBLE,
CUSTOMER_ID BIGINT,
UNIQUE(INVOICE_NUMBER),
FOREIGN KEY(CUSTOMER_ID) REFERENCES CUSTOMER(CUSTOMER_ID)
)

最佳答案

After an Invoice record is created(when user buys some items), should the corresponding cartitems be kept in db?

这完全取决于您的业务规则。您想将来恢复这些信息吗? 可能,我猜。那么他们应该坚持不懈。

如果您不想保留它们,则无需创建数据库表(除非您想要一些崩溃恢复)。您可以将 CarItem 保持在 session 中(假设它是一个 Web 应用程序)。

关于java - caritem 和 Invoice 的生命周期关系..对实现 Shoppingcart 的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6582554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com