eCommerce Database (DBML)

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