나는 대부분의 초보자와 같은 쇼핑 카트 웹 앱을 구현하려고 시도하고있다. & 동면 ... 많은 교과서를 통과했지만 여전히 의문을 품고있다. 여기 누군가가 내 생각을 바로 잡는데 도움이되기를 바랍니다.cartitem과 Invoice의 수명 관계 쇼핑 바구니 구현
나는 Product 클래스와 CartItem을 구현했다. CartItem에는 Product 필드와 수량 필드가 있습니다. 사용자가 제품을 구매하고자 할 때 CartItem을 장바구니에 추가합니다.
사용자 구매를 모델링하기 위해 CartItem 개체 집합을 사용하여 Invoice 클래스를 작성했습니다. 또한 고객 필드가 있습니다. 이제, 나는 테이블에 대해 조금 혼란스러워하며 그들의 생애를 어떻게 연관시켜야 하는가.
송장 기록이 생성 된 후 (사용자가 일부 항목을 구매할 때) 해당 cartitem을 db로 보관해야합니까? 또는 사용자가 상품을 구매 한 후에는 cartitem 레코드를 삭제해야합니까?
누군가이 부분을 밝힐 수 있다면 좋을 것입니다.
감사합니다,
마크
소스 코드 :
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)
)