-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript_MSQL.txt
More file actions
121 lines (103 loc) · 4.68 KB
/
script_MSQL.txt
File metadata and controls
121 lines (103 loc) · 4.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
CREATE DATABASE E_COMMERCE;
USE E_COMMERCE;
CREATE TABLE Produto(
idProduto INT PRIMARY KEY AUTO_INCREMENT,
categoria ENUM("eletronico","vestimenta","brinquedo","alimento","moveis","outros") DEFAULT "outros" NOT NULL,
avaliacao FLOAT,
tamanho VARCHAR(30),
descricao VARCHAR(45) NOT NULL,
valor_venda FLOAT(5,2) NOT NULL
);
--LOJA_FISICA----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE TABLE Loja(
idLoja INT PRIMARY KEY AUTO_INCREMENT,
razao_social VARCHAR(45) NOT NULL,
nome_fantasia VARCHAR(45) NOT NULL,
CNPJ VARCHAR(14) NOT NULL UNIQUE,
email VARCHAR(45) NOT NULL UNIQUE,
telefone VARCHAR(45) NOT NULL UNIQUE,
endereco VARCHAR(60) NOT NULL
);
CREATE TABLE Venda(
idVenda INT PRIMARY KEY AUTO_INCREMENT,
modo_pagamento ENUM("pix","credito","debito","dinhero"),
valor_pedido FLOAT(6,2) NOT NULL,
data_pedido DATE NOT NULL,
Loja_idLoja INT,
CONSTRAINT fk_Loja_Venda FOREIGN KEY (Loja_idLoja) REFERENCES Loja(idLoja)
);
CREATE TABLE ProdutoXVenda(
Venda_idVenda INT,
Produto_idProduto INT,
prod_quantidade INT UNSIGNED DEFAULT 1,
CONSTRAINT pk_ProdutoXVenda PRIMARY KEY (Venda_idVenda,Produto_idProduto),
CONSTRAINT fk_Venda_ProdutoXVenda FOREIGN KEY (Venda_idVenda) REFERENCES Venda(idVenda),
CONSTRAINT fk_Produto_ProdutoXVenda FOREIGN KEY (Produto_idProduto) REFERENCES Produto(idProduto)
);
CREATE TABLE ProdutoXLoja(
Produto_idProduto INT ,
Loja_idLoja INT,
prod_quantidade INT UNSIGNED NOT NULL,
CONSTRAINT pk_ProdutoXLoja PRIMARY KEY (Produto_idProduto,Loja_idLoja),
CONSTRAINT fk_Produto_ProdutoXLoja FOREIGN KEY (Produto_idProduto) REFERENCES Produto(idProduto),
CONSTRAINT fk_Loja_ProdutoXLoja FOREIGN KEY (Loja_idLoja) REFERENCES Loja(idLoja)
);
--LOJA_ONLINE----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE TABLE Cliente(
idCliente INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(20) NOT NULL,
sobrenome VARCHAR(30),
cpf VARCHAR(11) NOT NULL UNIQUE,
endereco VARCHAR(60) NOT NULL,
email VARCHAR(60) NOT NULL UNIQUE,
data_nascimento DATE NOT NULL
);
CREATE TABLE Pedido(
idPedido INT PRIMARY KEY AUTO_INCREMENT,
status ENUM("esperando_pagamento","processando","cancelado","enviado","entregue") DEFAULT "esperando_pagamento",
descricao VARCHAR(45) NOT NULL,
frete FLOAT(5,2) DEFAULT 0 ,
valor_pedido FLOAT(6,2) NOT NULL,
modo_pagamento ENUM("pix","boleto","credito","debito","dinhero"),
data_pedido DATE NOT NULL,
Cliente_idCliente INT ,
CONSTRAINT fk_Cliente_Pedido FOREIGN KEY (Cliente_idCliente) REFERENCES Cliente(idCliente)
);
CREATE TABLE ProdutoXPedido(
Produto_idProduto INT,
Pedido_idPedido INT,
prod_quantidade INT UNSIGNED DEFAULT 1,
status ENUM("disponivel","fora_de_estoque") DEFAULT "disponivel",
CONSTRAINT pk_ProdutoXPedido PRIMARY KEY (Produto_idProduto,Pedido_idPedido),
CONSTRAINT fk_Produto_ProdutoXPedido FOREIGN KEY (Produto_idProduto) REFERENCES Produto(idProduto),
CONSTRAINT fk_Pedido_ProdutoXPedido FOREIGN KEY (Pedido_idPedido) REFERENCES Pedido(idPedido)
);
--ESTOQUE/FORNECEDOR----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE TABLE Estoque(
idEstoque INT PRIMARY KEY AUTO_INCREMENT,
endereco VARCHAR(60) NOT NULL
);
CREATE TABLE Fornecedor(
idFornecedor INT PRIMARY KEY AUTO_INCREMENT,
razao_social VARCHAR(45) NOT NULL,
nome_fantasia VARCHAR(45) NOT NULL,
CNPJ VARCHAR(14) NOT NULL UNIQUE,
email VARCHAR(60) NOT NULL,
telefone VARCHAR (20) NOT NULL
);
CREATE TABLE FornecedorXProduto(
Produto_idProduto INT,
Fornecedor_idFornecedor INT,
valor_compra FLOAT (5,2) NOT NULL,
CONSTRAINT pk_FornecedorXProduto PRIMARY KEY (produto_idProduto,Fornecedor_idFornecedor),
CONSTRAINT fk_Fornecedor_FornecedorXProduto FOREIGN KEY (Fornecedor_idFornecedor) REFERENCES Fornecedor(idFornecedor),
CONSTRAINT fk_Produto_FornecedorXProduto FOREIGN KEY (Produto_idProduto) REFERENCES Produto(idProduto)
);
CREATE TABLE ProdutoXEstoque(
Produto_idProduto INT,
Estoque_idEstoque INT,
prod_quantidade INT UNSIGNED NOT NULL,
CONSTRAINT pk_ProdutoXEstoque PRIMARY KEY (Produto_idProduto,Estoque_idEstoque),
CONSTRAINT fk_Produto_ProdutoXEstoque FOREIGN KEY (Produto_idProduto) REFERENCES Produto(idProduto),
CONSTRAINT fk_Estoque_ProdutoXEstoque FOREIGN KEY (Estoque_idEstoque) REFERENCES Estoque(idEstoque)
);