· 4 years ago · Jun 16, 2021, 06:22 PM
1— MySQL Workbench Forward Engineering
2
3SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
4SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
5SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
6
7— —---------------------------------------------------
8— Schema mydb
9— —---------------------------------------------------
10
11— —---------------------------------------------------
12— Schema mydb
13— —---------------------------------------------------
14CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
15USE `mydb` ;
16
17— —---------------------------------------------------
18— Table `mydb`.`users`
19— —---------------------------------------------------
20CREATE TABLE IF NOT EXISTS `mydb`.`users` (
21`id` INT NOT NULL AUTO_INCREMENT,
22`fio` VARCHAR(255) NOT NULL,
23`login` VARCHAR(255) NULL,
24`password` VARCHAR(255) NULL,
25`e_mail` VARCHAR(255) NULL,
26`type` VARCHAR(45) NULL,
27PRIMARY KEY (`id`, `fio`),
28UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
29UNIQUE INDEX `login_UNIQUE` (`login` ASC) VISIBLE)
30ENGINE = InnoDB;
31
32— —---------------------------------------------------
33— Table `mydb`.`settings`
34— —---------------------------------------------------
35CREATE TABLE IF NOT EXISTS `mydb`.`settings` (
36`id` INT NOT NULL,
37`host` VARCHAR(45) NULL,
38`db` VARCHAR(45) NULL,
39`user` VARCHAR(45) NULL,
40PRIMARY KEY (`id`))
41ENGINE = InnoDB;
42
43— —---------------------------------------------------
44— Table `mydb`.`Shops`
45— —---------------------------------------------------
46CREATE TABLE IF NOT EXISTS `mydb`.`Shops` (
47`id` INT NOT NULL AUTO_INCREMENT,
48`name` VARCHAR(255) NULL,
49`adress` VARCHAR(255) NULL,
50`tel` VARCHAR(100) NULL,
51`site` VARCHAR(100) NULL,
52`email` VARCHAR(100) NULL,
53PRIMARY KEY (`id`),
54UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE)
55ENGINE = InnoDB;
56
57— —---------------------------------------------------
58— Table `mydb`.`product_type`
59— —---------------------------------------------------
60CREATE TABLE IF NOT EXISTS `mydb`.`product_type` (
61`id` INT NOT NULL,
62`name` VARCHAR(255) NULL,
63PRIMARY KEY (`id`))
64ENGINE = InnoDB;
65
66— —---------------------------------------------------
67— Table `mydb`.`Products`
68— —---------------------------------------------------
69CREATE TABLE IF NOT EXISTS `mydb`.`Products` (
70`id` INT NOT NULL,
71`shop_id` INT NOT NULL,
72`type_id` INT NOT NULL,
73`brand` VARCHAR(255) NULL,
74`model` VARCHAR(255) NULL,
75`data` TINYTEXT NULL,
76`img` VARCHAR(255) NULL,
77`price` VARCHAR(45) NULL,
78`warranty` VARCHAR(45) NULL,
79PRIMARY KEY (`id`, `shop_id`, `type_id`),
80INDEX `shop_to_products_idx` (`shop_id` ASC) VISIBLE,
81CONSTRAINT `shop_to_products`
82FOREIGN KEY (`shop_id`)
83REFERENCES `mydb`.`Shops` (`id`)
84ON DELETE NO ACTION
85ON UPDATE NO ACTION,
86CONSTRAINT `product_to_type`
87FOREIGN KEY (`type_id`)
88REFERENCES `mydb`.`product_type` (`id`)
89ON DELETE NO ACTION
90ON UPDATE NO ACTION)
91ENGINE = InnoDB;
92
93— —---------------------------------------------------
94— Table `mydb`.`Orders`
95— —---------------------------------------------------
96CREATE TABLE IF NOT EXISTS `mydb`.`Orders` (
97`id` INT NOT NULL AUTO_INCREMENT,
98`shop_id` INT NOT NULL,
99`product_id` INT NOT NULL,
100`fio` INT NOT NULL,
101`date` DATE NULL,
102`quantity` TINYINT NULL,
103`tel` VARCHAR(255) NULL,
104`confirm` TINYINT(1) NULL,
105PRIMARY KEY (`id`, `shop_id`, `product_id`, `fio`),
106UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
107INDEX `orders_to_shops_idx` (`shop_id` ASC) VISIBLE,
108INDEX `orders_to_products_idx` (`product_id` ASC) VISIBLE,
109INDEX `orders_to_users_idx` (`fio` ASC) VISIBLE,
110CONSTRAINT `orders_to_shops`
111FOREIGN KEY (`shop_id`)
112REFERENCES `mydb`.`Shops` (`id`)
113ON DELETE NO ACTION
114ON UPDATE NO ACTION,
115CONSTRAINT `orders_to_products`
116FOREIGN KEY (`product_id`)
117REFERENCES `mydb`.`Products` (`id`)
118ON DELETE NO ACTION
119ON UPDATE NO ACTION,
120CONSTRAINT `orders_to_users`
121FOREIGN KEY (`fio`)
122REFERENCES `mydb`.`users` (`id`)
123ON DELETE NO ACTION
124ON UPDATE NO ACTION)
125ENGINE =
126
127InnoDB;
128
129— —---------------------------------------------------
130— Table `mydb`.`Deliveries`
131— —---------------------------------------------------
132CREATE TABLE IF NOT EXISTS `mydb`.`Deliveries` (
133`order_id` INT NOT NULL AUTO_INCREMENT,
134`fio` INT NOT NULL,
135`adress` VARCHAR(45) NULL,
136`date` DATE NULL,
137`confirm` TINYINT(1) NULL,
138PRIMARY KEY (`order_id`, `fio`),
139UNIQUE INDEX `order_id_UNIQUE` (`order_id` ASC) VISIBLE,
140INDEX `deliveries_to_orders_idx` (`fio` ASC) VISIBLE,
141CONSTRAINT `deliveries_to_orders`
142FOREIGN KEY (`order_id`)
143REFERENCES `mydb`.`Orders` (`id`)
144ON DELETE NO ACTION
145ON UPDATE NO ACTION,
146CONSTRAINT `deliveries_to_orders`
147FOREIGN KEY (`fio`)
148REFERENCES `mydb`.`Orders` (`fio`)
149ON DELETE NO ACTION
150ON UPDATE NO ACTION)
151ENGINE = InnoDB;
152
153SET SQL_MODE=@OLD_SQL_MODE;
154SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
155SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
156