-
Notifications
You must be signed in to change notification settings - Fork 0
/
create.sql
154 lines (121 loc) · 5.6 KB
/
create.sql
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
-- GAMERBYTE - CREATE
-- AUTORES: João Fernandes & Rodrigo Santos
-- ÚLTIMA MODIFICAÇÃO: 2022-05-19
-- CRIAÇÃO DA BASE DE DADOS
drop database if exists gamerbyte;
create database if not exists gamerbyte;
use gamerbyte;
-- CRIAÇÃO DE TABELAS
-- Utilizador
create table utilizador (id_util int not null auto_increment,
nome_util varchar(50) not null unique,
nome varchar(60) not null,
email varchar(50) not null unique,
password varchar(30) not null,
avatar text,
data_cri date not null,
constraint pk_utilizador_id_ami primary key (id_util));
-- Amizade
create table amizade (id_ami int not null auto_increment,
util_1 int not null unique,
util_2 int not null unique,
constraint pk_amizade_id_ami primary key (id_ami));
-- Grupo
create table grupo (id_gru int not null auto_increment,
nome varchar(60) not null unique,
constraint pk_grupo_id_gru primary key (id_gru));
-- UserGrupo
create table util_grupo (id_util_gp int not null auto_increment,
util int not null,
grupo int not null,
constraint pk_util_grupo_id_util_gp primary key (id_util_gp));
-- Produto
create table produto (id_prod int not null auto_increment,
tipo varchar(30) not null,
constraint pk_produto_id_prod primary key (id_prod));
-- Jogo
create table jogo (id_jog int not null auto_increment,
nome varchar(60) not null unique,
descricao text not null,
preco double not null,
produto int not null,
constraint pk_jogo_id_jog primary key (id_jog));
-- Inventario
create table inventario (id_inv int not null auto_increment,
util int not null,
constraint pk_inventario_id_inv primary key (id_inv));
-- ProdutoInv
create table prod_inv (id_prod_inv int not null auto_increment,
inventario int not null,
produto int not null,
constraint pk_prod_inv_id_prod_inv primary key (id_prod_inv));
-- Critica
create table critica (id_crit int not null auto_increment,
data date not null,
descricao text not null,
jogo int not null,
util int not null,
constraint pk_critica_id_crit primary key (id_crit));
-- Compra
create table compra (id_compra int not null auto_increment,
produto int not null,
util int not null,
valor double not null,
data date not null,
constraint pk_compra_id_compra primary key (id_compra));
-- Venda
create table venda (id_venda int not null auto_increment,
produto int not null,
util int not null,
valor double not null,
data date not null,
constraint pk_compra_id_compra primary key (id_venda));
-- Item
create table item (id_item int not null auto_increment,
nome varchar(60) not null,
descricao varchar(100) not null,
inv int not null,
constraint pk_item_id_item primary key (id_item));
-- Medalha
create table medalha (id_med int not null auto_increment,
nome varchar(60) not null,
nivel double not null,
jogo int not null,
util int not null,
constraint pk_medalha_id_med primary key (id_med),
constraint ck_medalha_nivel check (nivel between 0 and 100));
-- DEFINIÇÃO DE FOREIGN KEYS
alter table amizade add constraint fk_amizade_util_1 foreign key (util_1)
references utilizador (id_util);
alter table amizade add constraint fk_amizade_util_2 foreign key (util_2)
references utilizador (id_util);
alter table util_grupo add constraint fk_util_grupo_util foreign key (util)
references utilizador (id_util);
alter table util_grupo add constraint fk_util_grupo_grupo foreign key (grupo)
references grupo (id_gru);
alter table jogo add constraint fk_jogo_produto foreign key (produto)
references produto (id_prod);
alter table inventario add constraint fk_inventario_util foreign key (util)
references utilizador (id_util);
alter table prod_inv add constraint fk_prod_inv_inventario foreign key (inventario)
references inventario (id_inv);
alter table prod_inv add constraint fk_prod_inv_produto foreign key (produto)
references produto (id_prod);
alter table critica add constraint fk_critica_jogo foreign key (jogo)
references jogo (id_jog);
alter table critica add constraint fk_critica_util foreign key (util)
references utilizador (id_util);
alter table item add constraint fk_item_inv foreign key (inv)
references inventario (id_inv);
alter table compra add constraint fk_compra_produto foreign key (produto)
references prod_inv (id_prod_inv);
alter table compra add constraint fk_compra_util foreign key (util)
references utilizador (id_util);
alter table venda add constraint fk_venda_produto foreign key (produto)
references prod_inv (id_prod_inv);
alter table venda add constraint fk_venda_util foreign key (util)
references utilizador (id_util);
alter table medalha add constraint fk_medalha_jogo foreign key (jogo)
references jogo (id_jog);
alter table medalha add constraint fk_medalha_util foreign key (util)
references utilizador (id_util);