Skip to content
DBML templates

E-commerce schema

Storefront essentials — customers, products, variants, orders, line items, payments. Includes enums.

Template previewDBML
variants.product_id > products.idorders.customer_id > customers.idorder_items.order_id > orders.idorder_items.variant_id > variants.idpayments.order_id > orders.idcustomersiduuidemailvarcharnamevarcharcreated_attimestampproductsiduuidslugvarchartitlevarchardescriptiontextvariantsiduuidproduct_iduuidskuvarcharprice_centsintstockintordersiduuidcustomer_iduuidstatusorder_statustotal_centsintplaced_attimestamporder_itemsiduuidorder_iduuidvariant_iduuidqtyintprice_centsintpaymentsiduuidorder_iduuidprovidervarcharexternal_idvarcharamount_centsintcaptured_attimestampenum order_statuspendingpaidfulfilledrefundedcancelled

Make it your own.

enum order_status {
  pending
  paid
  fulfilled
  refunded
  cancelled
}

Table customers {
  id uuid [pk]
  email varchar [unique]
  name varchar
  created_at timestamp
}

Table products {
  id uuid [pk]
  slug varchar [unique]
  title varchar
  description text
}

Table variants {
  id uuid [pk]
  product_id uuid [ref: > products.id]
  sku varchar [unique]
  price_cents int
  stock int
}

Table orders {
  id uuid [pk]
  customer_id uuid [ref: > customers.id]
  status order_status
  total_cents int
  placed_at timestamp
}

Table order_items {
  id uuid [pk]
  order_id uuid [ref: > orders.id]
  variant_id uuid [ref: > variants.id]
  qty int
  price_cents int
}

Table payments {
  id uuid [pk]
  order_id uuid [ref: > orders.id]
  provider varchar
  external_id varchar
  amount_cents int
  captured_at timestamp
}