Skip to content

matsuokashuhei/grocery-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grocery store

ER diagram

erDiagram

customers {
    id int PK
    name string
    address string
    phone_number string
}

carts {
    id int PK
    store_id int FK
    customer_id int FK
}

cart_items {
    id int PK
    cart_id int FK
    variant_id int FK
    quantity int
}

orders {
    id int PK
    cart_id int FK
}

order_items {
    id int PK
    order_id int FK
    cart_item_id int FK
}

order_cancels {
    id int PK
    order_id int FK
}

shipments {
    id int PK
    order_id int FK
}

shipment_items {
    id int PK
    shipment_id int FK
    order_item_id int FK
    quantity int
}

invoices {
    id int PK
    order_id int FK
}

invoice_items {
    id int PK
    invoce_id int FK
    order_item_id int FK
}

order_refunds {
    id int PK
    shipment_id int FK
}

refund_items {
    id int PK
    order_refund_id int FK
    shipment_item_id int FK
    quantity int
}

categories {
    id int PK
    name string
    position int
}

category_hierarchies {
    parent_id int FK
    child_id int FK
}

categories_groceries {
    category_id int PK
    grocery_id int PK
}

groceries {
    id int PK
    name string
    description string
}

variants {
    id int PK
    grocery_id int FK
    unit_label string
}

prices {
    id int PK
    variant_id int FK
    amount int
    start_date date
    end_date date
}

stores {
    id int PK
    name string
    location string
}

stocks {
    id int PK
    store_id int FK
    grocery_id int FK
    arrives_time datetime
    expires_time datetime
    quality int
}

allocations {
    id int PK
    stock_id int FK
    cart_item_id int FK
}

taxes {
    id int PK
    rate decimal
}

groceries_taxes {
    id int PK
    grocery_id int FK
    tax_id int FK
    start_date date
    end_date date
}

customers ||--o{ carts : ""
stores ||--o{ carts : ""
carts ||--o{ cart_items : ""
cart_items }o--|| variants : ""
categories ||--o{ category_hierarchies : ""
categories ||--o{ categories_groceries : ""
categories_groceries }|--|| groceries : ""
groceries ||--|{ groceries_taxes : ""
groceries_taxes }|--|| taxes : ""
groceries ||--o{ variants : ""
variants ||--o{ stocks : ""
variants ||--o{ prices : ""
stores ||--o{ stocks : ""
stocks ||--o{ allocations : ""
cart_items ||--|{ allocations : ""
carts ||--o{ orders : ""
cart_items ||--o{ order_items : ""
orders ||--|{ order_items : ""
orders ||--o| order_cancels : ""
orders ||--o{ invoices : ""
invoices ||--|{ invoice_items : ""
invoice_items }|--|| order_items : ""
orders ||--o{ shipments : ""
shipments ||--|{ shipment_items : ""
order_items ||--|{ shipment_items : ""
orders ||--o{ order_refunds : ""
order_refunds ||--|{ refund_items : ""
refund_items }|--|| order_items : ""

Loading