3 - Modelo Físico

From Grupo2 Ahand

(Difference between revisions)
Line 1: Line 1:
-
CREATE TABLE Motoristas (
+
(CREATE TABLE Motoristas (
   ID_MOTORISTA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   ID_MOTORISTA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
   ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
   ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
Line 11: Line 11:
   PRIMARY KEY(ID_MOTORISTA, ID_PROPRIETARIO),
   PRIMARY KEY(ID_MOTORISTA, ID_PROPRIETARIO),
   INDEX Motoristas_FKIndex1(ID_PROPRIETARIO)
   INDEX Motoristas_FKIndex1(ID_PROPRIETARIO)
-
);
+
);)
CREATE TABLE Ocorrencias (
CREATE TABLE Ocorrencias (

Revision as of 23:52, 13 December 2006

(CREATE TABLE Motoristas (

 ID_MOTORISTA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
 NOME VARCHAR(45) NULL,
 ENDEREÇO VARCHAR(255) NULL,
 RG VARCHAR(20) NULL,
 CPF VARCHAR(20) NULL,
 CNH VARCHAR(20) NULL,
 TELEFONE VARCHAR(20) NULL,
 CELULAR VARCHAR(20) NULL,
 PRIMARY KEY(ID_MOTORISTA, ID_PROPRIETARIO),
 INDEX Motoristas_FKIndex1(ID_PROPRIETARIO)

);)

CREATE TABLE Ocorrencias (

 ID_OCORRENCIA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 DATA_HORA DATETIME NULL,
 DESCRIÇÃO VARCHAR(255) NULL,
 ID_VEICULO INTEGER UNSIGNED NULL,
 ID_MOTORISTA INTEGER UNSIGNED NULL,
 NOME_INFORMANTE VARCHAR(45) NULL,
 FONE_INFORMANTE VARCHAR(20) NULL,
 PRIMARY KEY(ID_OCORRENCIA)

);

CREATE TABLE Ocorrencias_Motoristas (

 ID_OCORRENCIA INTEGER UNSIGNED NOT NULL,
 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
 ID_MOTORISTA INTEGER UNSIGNED NOT NULL,
 PRIMARY KEY(ID_OCORRENCIA, ID_PROPRIETARIO, ID_MOTORISTA),
 INDEX Ocorrencias_Motoristas_FKIndex1(ID_MOTORISTA, ID_PROPRIETARIO),
 INDEX Ocorrencias_Motoristas_FKIndex2(ID_OCORRENCIA)

);

CREATE TABLE Ocorrencias_Veiculos (

 ID_VEICULO INTEGER UNSIGNED NOT NULL,
 ID_OCORRENCIA INTEGER UNSIGNED NOT NULL,
 PRIMARY KEY(ID_VEICULO, ID_OCORRENCIA),
 INDEX Ocorrencias_Veiculos_FKIndex1(ID_OCORRENCIA),
 INDEX Ocorrencias_Veiculos_FKIndex2(ID_VEICULO)

);

CREATE TABLE Periodos (

 ID_PERIODO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 NOME_PERIODO VARCHAR(45) NULL,
 PRIMARY KEY(ID_PERIODO)

);

CREATE TABLE Proprietarios (

 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 NOME CHAR NULL,
 ENDEREÇO CHAR NULL,
 RG CHAR NULL,
 CPF CHAR NULL,
 TELEFONE CHAR NULL,
 CELULAR CHAR NULL,
 PRIMARY KEY(ID_PROPRIETARIO)

);

CREATE TABLE REFERENCIAS (

 ID_REFERENCIA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 BAIRRO VARCHAR(255) NULL,
 DESCRICAO VARCHAR(255) NULL,
 ESCOLA BOOL NULL,
 PRIMARY KEY(ID_REFERENCIA)

);

CREATE TABLE REL_EMPRESTA (

 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
 ID_VEICULO INTEGER UNSIGNED NOT NULL,
 DATA_RETIRADA DATE NULL,
 DATA_ENTREGA DATE NULL,
 PRIMARY KEY(ID_PROPRIETARIO, ID_VEICULO),
 INDEX Proprietarios_has_Veiculos_Sindicato_FKIndex1(ID_PROPRIETARIO),
 INDEX Proprietarios_has_Veiculos_Sindicato_FKIndex2(ID_VEICULO)

);

CREATE TABLE REL_REFERENCIAS (

 ID_REFERENCIA INTEGER UNSIGNED NOT NULL,
 ID_ROTA INTEGER UNSIGNED NOT NULL,
 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
 PRIMARY KEY(ID_REFERENCIA, ID_ROTA, ID_PROPRIETARIO),
 INDEX Rotas_has_REFERENCIAS_FKIndex1(ID_ROTA, ID_PROPRIETARIO),
 INDEX REL_REFERENCIAS_FKIndex2(ID_REFERENCIA)

);

CREATE TABLE Rotas (

 ID_ROTA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
 ID_PERIODO INTEGER UNSIGNED NOT NULL,
 PONTO_INICIO VARCHAR(45) NULL,
 PONTO_FIM VARCHAR(45) NULL,
 SITUAÇAO VARCHAR(255) NULL,
 PRIMARY KEY(ID_ROTA, ID_PROPRIETARIO),
 INDEX Rotas_FKIndex2(ID_PROPRIETARIO),
 INDEX Rotas_FKIndex2(ID_PERIODO)

);

CREATE TABLE Usuarios (

 ID_USUARIO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
 ID_ROTA INTEGER UNSIGNED NOT NULL,
 ID_PERIODO INTEGER UNSIGNED NOT NULL,
 NOME CHAR NOT NULL,
 ENDEREÇO VARCHAR(255) NULL,
 RG VARCHAR(20) NULL,
 CPF VARCHAR(20) NULL,
 TELEFONE INTEGER UNSIGNED NULL,
 CELULAR VARCHAR(20) NULL,
 NOME_RESPONSAVEL VARCHAR(45) NULL,
 PRIMARY KEY(ID_USUARIO, ID_PROPRIETARIO, ID_ROTA, ID_PERIODO),
 INDEX Usuarios_FKIndex1(ID_PROPRIETARIO),
 INDEX Usuarios_FKIndex2(ID_ROTA, ID_PROPRIETARIO),
 INDEX Usuarios_FKIndex3(ID_PERIODO)

);

CREATE TABLE Veiculos (

 ID_VEICULO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 MARCA VARCHAR(20) NULL,
 ANO INTEGER UNSIGNED NULL,
 MODELO VARCHAR(45) NULL,
 FABRICANTE VARCHAR(45) NULL,
 CHASSI VARCHAR(45) NULL,
 PLACA VARCHAR(20) NULL,
 COR VARCHAR(20) NULL,
 CAPACIDADE INTEGER UNSIGNED NULL,
 PRIMARY KEY(ID_VEICULO)

);

CREATE TABLE Veiculos_Proprietarios (

 ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,
 ID_VEICULO INTEGER UNSIGNED NOT NULL,
 valor_mensalidade FLOAT NULL,
 PRIMARY KEY(ID_PROPRIETARIO, ID_VEICULO),
 INDEX Veiculos_Proprietarios_FKIndex1(ID_VEICULO),
 INDEX Veiculos_Proprietarios_FKIndex2(ID_PROPRIETARIO)

);

CREATE TABLE Veiculos_Sindicato (

 Veiculos_ID_VEICULO INTEGER UNSIGNED NOT NULL,
 PRIMARY KEY(Veiculos_ID_VEICULO),
 INDEX Veiculos_Sindicato_FKIndex1(Veiculos_ID_VEICULO)

);

Personal tools