ER Diagram
erDiagram
User {
INTEGER id PK
STRING email
STRING phone
BOOLEAN has_initial_profile
STRING photo
TEXT address
INTEGER gender_id FK
INTEGER country_id FK
DATE birthday
DATETIME created_at
DATETIME updated_at
}
Cart {
INTEGER id PK
INTEGER user_id FK
DATETIME created_at
DATETIME updated_at
}
Product {
INTEGER id PK
STRING name
STRING description
DECIMAL price
DATETIME created_at
DATETIME updated_at
}
ProductVariant {
INTEGER id PK
INTEGER product_id FK
STRING color
STRING value
INTEGER size_id FK
DECIMAL variant_price
INTEGER stock_quantity
BOOLEAN is_available
BOOLEAN is_active
DATETIME created_at
DATETIME updated_at
}
CartItem {
INTEGER id PK
INTEGER cart_id FK
INTEGER product_id FK
INTEGER variant_id FK
INTEGER quantity
BOOLEAN is_customized
JSON customized_fields
BOOLEAN is_direct_purchase
BOOLEAN has_purchased
DATETIME created_at
DATETIME updated_at
}
User ||--o{ Cart : "has"
Cart ||--o{ CartItem : "contains"
Product ||--o{ CartItem : "included in"
ProductVariant ||--o{ Product : "has variant"