|
| 1 | +# ERD |
| 2 | + |
| 3 | +```mermaid |
| 4 | +erDiagram |
| 5 | + users { |
| 6 | + bigint id PK "NOT NULL | 사용자 ID" |
| 7 | + varchar login_id "NOT NULL | 로그인 ID" |
| 8 | + varchar email "NOT NULL | 이메일" |
| 9 | + varchar password "NOT NULL | 비밀번호" |
| 10 | + varchar gender "NOT NULL | 성별" |
| 11 | + varchar birth "NOT NULL | 생년월일" |
| 12 | + timestamp created_at "NOT NULL | 생성일시" |
| 13 | + timestamp updated_at "NOT NULL | 수정일시" |
| 14 | + timestamp deleted_at "삭제일시" |
| 15 | + } |
| 16 | +
|
| 17 | + point { |
| 18 | + bigint id PK "NOT NULL | 포인트 ID" |
| 19 | + bigint ref_ser_id "NOT NULL | 사용자 ID" |
| 20 | + int balance "NOT NULL | 잔액" |
| 21 | + } |
| 22 | +
|
| 23 | + brand { |
| 24 | + bigint id PK "NOT NULL | 브랜드 ID" |
| 25 | + varchar name "NOT NULL | 브랜드명" |
| 26 | + varchar description "브랜드 설명" |
| 27 | + timestamp created_at "NOT NULL | 생성일시" |
| 28 | + timestamp updated_at "수정일시" |
| 29 | + timestamp deleted_at "삭제일시" |
| 30 | + } |
| 31 | +
|
| 32 | + product { |
| 33 | + bigint id PK "NOT NULL | 상품 ID" |
| 34 | + bigint ref_brand_id "NOT NULL | 브랜드 ID" |
| 35 | + varchar name "NOT NULL | 상품명" |
| 36 | + decimal price "NOT NULL | 기본금액" |
| 37 | + int stock "NOT NULL | 재고" |
| 38 | + timestamp created_at "NOT NULL | 생성일시" |
| 39 | + timestamp updated_at "수정일시" |
| 40 | + timestamp deleted_at "삭제일시" |
| 41 | + } |
| 42 | +
|
| 43 | + like { |
| 44 | + bigint id PK "NOT NULL | 좋아요 ID" |
| 45 | + bigint ref_product_id "NOT NULL | 상품 ID" |
| 46 | + bigint ref_user_id "NOT NULL | 사용자 ID" |
| 47 | + timestamp created_at "NOT NULL | 생성일시" |
| 48 | + } |
| 49 | + |
| 50 | + cart { |
| 51 | + bigint id PK "NOT NULL | 장바구니 ID" |
| 52 | + bigint ref_user_id "NOT NULL | 사용자 ID" |
| 53 | + |
| 54 | + } |
| 55 | + |
| 56 | + cart_item { |
| 57 | + bigint id PK "NOT NULL | 장바구니에 담긴 상품 ID" |
| 58 | + bigint ref_cart_id "NOT NULL | 장바구니 ID" |
| 59 | + bigint ref_product_id "NOT NULL | 상품 ID" |
| 60 | + varchar name "NOT NULL | 상품 이름" |
| 61 | + int quantity "NOT NULL | 수량" |
| 62 | + } |
| 63 | +
|
| 64 | + order { |
| 65 | + bigint id PK "NOT NULL | 주문 ID" |
| 66 | + bigint ref_user_id "NOT NULL | 사용자 ID" |
| 67 | + decimal total_price "NOT NULL | 총 주문 금액" |
| 68 | + varchar status "NOT NULL | 주문 상태" |
| 69 | + timestamp created_at "NOT NULL | 주문 일시" |
| 70 | + timestamp updated_at "수정일시" |
| 71 | + timestamp deleted_at "삭제일시" |
| 72 | + } |
| 73 | +
|
| 74 | + order_item { |
| 75 | + bigint id PK "NOT NULL | 주문 상품 ID" |
| 76 | + bigint ref_order_id "NOT NULL | 주문 ID" |
| 77 | + bigint ref_product_id "NOT NULL | 상품 ID" |
| 78 | + int quantity "NOT NULL | 수량" |
| 79 | + decimal price "NOT NULL | 금액" |
| 80 | + } |
| 81 | +
|
| 82 | + payment { |
| 83 | + bigint id PK "NOT NULL | 결제 ID" |
| 84 | + bigint ref_order_id "NOT NULL | 주문 ID" |
| 85 | + decimal total_price "NOT NULL | 주문금액" |
| 86 | + varchar method "NOT NULL | 주문방법" |
| 87 | + varchar status "NOT NULL | 주문상태" |
| 88 | + timestamp created_at "생성일시" |
| 89 | + timestamp updated_at "수정일시" |
| 90 | + timestamp deleted_at "삭제일시" |
| 91 | + timestamp approved_at "결제 승인 일시" |
| 92 | + } |
| 93 | +
|
| 94 | + users ||--o{ point : "has" |
| 95 | + users ||--o{ like : "likes" |
| 96 | + product ||--o{ like : "is liked by" |
| 97 | + brand ||--o{ product : "owns" |
| 98 | + users ||--o{ cart : "has" |
| 99 | + cart ||--o{ cart_item : "contains" |
| 100 | + product ||--o{ cart_item : "in" |
| 101 | + users ||--o{ order : "places" |
| 102 | + order ||--o{ order_item : "contains" |
| 103 | + product ||--o{ order_item : "included in" |
| 104 | + order ||--|| payment : "is paid by" |
| 105 | +``` |
0 commit comments