create database db_reservalabs;

use db_reservalabs; 

create table usuario (
codigo_usuario tinyint unsigned primary key auto_increment,
nome_usuario varchar(60) not null,
email_usuario varchar(60) not null unique,
senha_usuario varchar(64) not null,
data_registro_usuario timestamp default now()
);

create table ambiente (
codigo_ambiente tinyint unsigned primary key auto_increment,
nome_ambiente varchar(45) not null unique
);

create table equipamento (
codigo_equipamento int unsigned primary key auto_increment,
nome_equipamento varchar(60)  not null,
numero_serie varchar(45),
numero_patrimonio varchar(45),
descricao_equipamento varchar(200),
id_tipo_equipamento tinyint not null,
id_modelo tinyint,
id_fabricante tinyint,
id_usuario tinyint unsigned not null,
data_registro_equipamento timestamp default now(),
foreign key (id_usuario) references
usuario (codigo_usuario)
);

create table tipo_equipamento (
codigo_tipo_equipamento tinyint unsigned primary key auto_increment,
tipo_equipamento varchar(60) not null unique
);

alter table equipamento change
id_tipo_equipamento id_tipo_equipamento tinyint unsigned not null;

alter table equipamento add
foreign key (id_tipo_equipamento) references
tipo_equipamento (codigo_tipo_equipamento);

create table modelo (
codigo_modelo tinyint primary key auto_increment,
nome_modelo varchar(60) not null unique 
);

alter table equipamento add
foreign key (id_modelo) references
modelo (codigo_modelo);

create table fabricante (
codigo_fabricante tinyint primary key auto_increment,
nome_fabricante varchar(60) not null
);

alter table equipamento add
foreign key (id_fabricante) references
fabricante (codigo_fabricante);