3 - Modelo Físico

From Grupo2 Ahand

(Difference between revisions)
Line 1: Line 1:
-
 
+
<table border="0" width="62%" cellspacing="1" cellpadding="0" id="table1">
 +
<tr>
 +
<td>CREATE TABLE <b>Motoristas</b> (<br>
 +
ID_MOTORISTA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,<br>
 +
NOME VARCHAR(45) NULL,<br>
 +
ENDEREÇO VARCHAR(255) NULL,<br>
 +
RG VARCHAR(20) NULL,<br>
 +
CPF VARCHAR(20) NULL,<br>
 +
CNH VARCHAR(20) NULL,<br>
 +
TELEFONE VARCHAR(20) NULL,<br>
 +
CELULAR VARCHAR(20) NULL,<br>
 +
PRIMARY KEY(ID_MOTORISTA, ID_PROPRIETARIO),<br>
 +
INDEX Motoristas_FKIndex1(ID_PROPRIETARIO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Ocorrencias </b>(<br>
 +
ID_OCORRENCIA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
DATA_HORA DATETIME NULL,<br>
 +
DESCRIÇÃO VARCHAR(255) NULL,<br>
 +
ID_VEICULO INTEGER UNSIGNED NULL,<br>
 +
ID_MOTORISTA INTEGER UNSIGNED NULL,<br>
 +
NOME_INFORMANTE VARCHAR(45) NULL,<br>
 +
FONE_INFORMANTE VARCHAR(20) NULL,<br>
 +
PRIMARY KEY(ID_OCORRENCIA)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Ocorrencias_Motoristas</b> (<br>
 +
ID_OCORRENCIA INTEGER UNSIGNED NOT NULL,<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,<br>
 +
ID_MOTORISTA INTEGER UNSIGNED NOT NULL,<br>
 +
PRIMARY KEY(ID_OCORRENCIA, ID_PROPRIETARIO, ID_MOTORISTA),<br>
 +
INDEX Ocorrencias_Motoristas_FKIndex1(ID_MOTORISTA, ID_PROPRIETARIO),<br>
 +
INDEX Ocorrencias_Motoristas_FKIndex2(ID_OCORRENCIA)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Ocorrencias_Veiculos</b> (<br>
 +
ID_VEICULO INTEGER UNSIGNED NOT NULL,<br>
 +
ID_OCORRENCIA INTEGER UNSIGNED NOT NULL,<br>
 +
PRIMARY KEY(ID_VEICULO, ID_OCORRENCIA),<br>
 +
INDEX Ocorrencias_Veiculos_FKIndex1(ID_OCORRENCIA),<br>
 +
INDEX Ocorrencias_Veiculos_FKIndex2(ID_VEICULO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Periodos</b> (<br>
 +
ID_PERIODO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
NOME_PERIODO VARCHAR(45) NULL,<br>
 +
PRIMARY KEY(ID_PERIODO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Proprietarios</b> (<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
NOME CHAR NULL,<br>
 +
ENDEREÇO CHAR NULL,<br>
 +
RG CHAR NULL,<br>
 +
CPF CHAR NULL,<br>
 +
TELEFONE CHAR NULL,<br>
 +
CELULAR CHAR NULL,<br>
 +
PRIMARY KEY(ID_PROPRIETARIO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>REFERENCIAS</b> (<br>
 +
ID_REFERENCIA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
BAIRRO VARCHAR(255) NULL,<br>
 +
DESCRICAO VARCHAR(255) NULL,<br>
 +
ESCOLA BOOL NULL,<br>
 +
PRIMARY KEY(ID_REFERENCIA)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>REL_EMPRESTA</b> (<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,<br>
 +
ID_VEICULO INTEGER UNSIGNED NOT NULL,<br>
 +
DATA_RETIRADA DATE NULL,<br>
 +
DATA_ENTREGA DATE NULL,<br>
 +
PRIMARY KEY(ID_PROPRIETARIO, ID_VEICULO),<br>
 +
INDEX Proprietarios_has_Veiculos_Sindicato_FKIndex1(ID_PROPRIETARIO),<br>
 +
INDEX Proprietarios_has_Veiculos_Sindicato_FKIndex2(ID_VEICULO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>REL_REFERENCIAS </b>(<br>
 +
ID_REFERENCIA INTEGER UNSIGNED NOT NULL,<br>
 +
ID_ROTA INTEGER UNSIGNED NOT NULL,<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,<br>
 +
PRIMARY KEY(ID_REFERENCIA, ID_ROTA, ID_PROPRIETARIO),<br>
 +
INDEX Rotas_has_REFERENCIAS_FKIndex1(ID_ROTA, ID_PROPRIETARIO),<br>
 +
INDEX REL_REFERENCIAS_FKIndex2(ID_REFERENCIA)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Rotas </b>(<br>
 +
ID_ROTA INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,<br>
 +
ID_PERIODO INTEGER UNSIGNED NOT NULL,<br>
 +
PONTO_INICIO VARCHAR(45) NULL,<br>
 +
PONTO_FIM VARCHAR(45) NULL,<br>
 +
SITUAÇAO VARCHAR(255) NULL,<br>
 +
PRIMARY KEY(ID_ROTA, ID_PROPRIETARIO),<br>
 +
INDEX Rotas_FKIndex2(ID_PROPRIETARIO),<br>
 +
INDEX Rotas_FKIndex2(ID_PERIODO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Usuarios</b> (<br>
 +
ID_USUARIO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,<br>
 +
ID_ROTA INTEGER UNSIGNED NOT NULL,<br>
 +
ID_PERIODO INTEGER UNSIGNED NOT NULL,<br>
 +
NOME CHAR NOT NULL,<br>
 +
ENDEREÇO VARCHAR(255) NULL,<br>
 +
RG VARCHAR(20) NULL,<br>
 +
CPF VARCHAR(20) NULL,<br>
 +
TELEFONE INTEGER UNSIGNED NULL,<br>
 +
CELULAR VARCHAR(20) NULL,<br>
 +
NOME_RESPONSAVEL VARCHAR(45) NULL,<br>
 +
PRIMARY KEY(ID_USUARIO, ID_PROPRIETARIO, ID_ROTA, ID_PERIODO),<br>
 +
INDEX Usuarios_FKIndex1(ID_PROPRIETARIO),<br>
 +
INDEX Usuarios_FKIndex2(ID_ROTA, ID_PROPRIETARIO),<br>
 +
INDEX Usuarios_FKIndex3(ID_PERIODO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Veiculos</b> (<br>
 +
ID_VEICULO INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,<br>
 +
MARCA VARCHAR(20) NULL,<br>
 +
ANO INTEGER UNSIGNED NULL,<br>
 +
MODELO VARCHAR(45) NULL,<br>
 +
FABRICANTE VARCHAR(45) NULL,<br>
 +
CHASSI VARCHAR(45) NULL,<br>
 +
PLACA VARCHAR(20) NULL,<br>
 +
COR VARCHAR(20) NULL,<br>
 +
CAPACIDADE INTEGER UNSIGNED NULL,<br>
 +
PRIMARY KEY(ID_VEICULO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td><br>
 +
CREATE TABLE <b>Veiculos_Proprietarios</b> (<br>
 +
ID_PROPRIETARIO INTEGER UNSIGNED NOT NULL,<br>
 +
ID_VEICULO INTEGER UNSIGNED NOT NULL,<br>
 +
valor_mensalidade FLOAT NULL,<br>
 +
PRIMARY KEY(ID_PROPRIETARIO, ID_VEICULO),<br>
 +
INDEX Veiculos_Proprietarios_FKIndex1(ID_VEICULO),<br>
 +
INDEX Veiculos_Proprietarios_FKIndex2(ID_PROPRIETARIO)<br>
 +
);
 +
</tr>
 +
<tr>
 +
<td>CREATE TABLE <b>Veiculos_Sindicato </b>(<br>
 +
Veiculos_ID_VEICULO INTEGER UNSIGNED NOT NULL,<br>
 +
PRIMARY KEY(Veiculos_ID_VEICULO),<br>
 +
INDEX Veiculos_Sindicato_FKIndex1(Veiculos_ID_VEICULO)<br>
 +
);
 +
</tr>
 +
</table>

Revision as of 00:03, 14 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