Javaee と休止状態のほとんどの初心者のように、ショッピング カート Web アプリを実装しようとしています。多くの教科書を調べましたが、まだ疑問があります。ここの誰かが私の考えを正すのを手伝ってくれることを願っています。
Product クラスと CartItem を実装しました。CartItem には Product フィールドと quantity フィールドがあります。ユーザーが製品を購入したい場合、CartItem をカートに追加します。
ユーザーの購入をモデル化するために、一連の CartItem オブジェクトを使用して Invoice クラスを作成しました。また、顧客フィールドもあります。ここで、対応するテーブルと、それらの有効期間がどのように関連するかについて少し混乱しています。
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)
)