eCommerce Database (DBML)

E-commerce database
Table ecommerce_merchants {
  id int
  country_code int
  merchant_name varchar
  created_at varchar
  admin_id int

  Indexes {
    (id, country_code) [pk]
  }
}

Table users {
  id int [pk, increment]
  full_name varchar
  created_at timestamp
  country_code int
}

Table countries {
  code int [pk]
  name varchar
  continent_name varchar
}

Table ecommerce_order_items {
  order_id int
  product_id int
  quantity int [default: 1]
}

Table ecommerce_orders {
  id int [pk]
  user_id int [not null, unique]
  status varchar
  created_at varchar
}

Enum ecommerce_products_status {
  out_of_stock
  in_stock
  running_low
}

Table ecommerce_products {
  id int [pk]
  name varchar
  merchant_id int [not null]
  price int
  status ecommerce_products_status
  created_at datetime [default: `now()`]

  Indexes {
    (merchant_id, status) [name: 'product_status']
    id [unique]
  }
}

Table ecommerce_product_tags {
  id int [pk]
  name varchar
}

Table ecommerce_merchant_periods {
  id int [pk]
  merchant_id int
  country_code int
  start_date datetime
  end_date datetime
}

Ref: users.country_code > countries.code
Ref: ecommerce_merchants.country_code > countries.code
Ref: ecommerce_merchants.admin_id > users.id
Ref: ecommerce_order_items.order_id > ecommerce_orders.id
Ref: ecommerce_order_items.product_id > ecommerce_products.id
Ref: ecommerce_products.merchant_id > ecommerce_merchants.id
Ref: ecommerce_merchant_periods.merchant_id > ecommerce_merchants.id
Ref: ecommerce_merchant_periods.country_code > ecommerce_merchants.country_code