@dbml/cli
Version:
See our website [@dbml/cli](https://dbml.dbdiagram.io/cli/) for more information
63 lines (48 loc) • 1.64 kB
Plain Text
CREATE TABLE `orders` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`user_id` int UNIQUE NOT NULL,
`status` ENUM ('created', 'running', 'done', 'failure'),
`created_at` varchar(255)
);
CREATE TABLE `order_items` (
`order_id` int,
`product_id` int,
`quantity` int DEFAULT 1
);
CREATE TABLE `products` (
`id` int PRIMARY KEY,
`name` varchar(255),
`merchant_id` int NOT NULL,
`price` int,
`status` ENUM ('Out of Stock', 'In Stock'),
`created_at` datetime DEFAULT (now())
);
CREATE TABLE `users` (
`id` int PRIMARY KEY,
`full_name` varchar(255),
`email` varchar(255) UNIQUE,
`gender` varchar(255),
`date_of_birth` varchar(255),
`created_at` varchar(255),
`country_code` int
);
CREATE TABLE `merchants` (
`id` int PRIMARY KEY,
`merchant_name` varchar(255),
`country_code` int,
`created_at` varchar(255),
`admin_id` int
);
CREATE TABLE `countries` (
`code` int PRIMARY KEY,
`name` varchar(255),
`continent_name` varchar(255)
);
CREATE INDEX `product_status` ON `products` (`merchant_id`, `status`);
CREATE UNIQUE INDEX `products_index_1` ON `products` (`id`) USING HASH;
ALTER TABLE `order_items` ADD FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`);
ALTER TABLE `order_items` ADD FOREIGN KEY (`product_id`) REFERENCES `products` (`id`);
ALTER TABLE `users` ADD FOREIGN KEY (`country_code`) REFERENCES `countries` (`code`);
ALTER TABLE `merchants` ADD FOREIGN KEY (`country_code`) REFERENCES `countries` (`code`);
ALTER TABLE `products` ADD FOREIGN KEY (`merchant_id`) REFERENCES `merchants` (`id`);
ALTER TABLE `merchants` ADD FOREIGN KEY (`admin_id`) REFERENCES `users` (`id`);