Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

osprimosbh

Modelagem de Banco de dados

Recommended Posts

Olá pessoal! Antes de mais nada peço desculpas caso não esteja postando no lugar certo.


Bom, estou desenvolvendo uma aplicação, preciso modelar um banco de dados para um sistema de classificados de veículos. Fiz parte do modelo e gostaria da opinião de vocês para deixa-lo correto. Segue abaixo:


bd.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu começaria pela Fabricante, assim quem sabe você consegue diminuir pela metade estas tabelas.

 

Marca -> Modelo -> e por ai vai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal, sou iniciante, me desculpem pelo erro, estou aprendendo. Poderiam me orientar sobre a forma correta de se modelar esse banco? Quais tabelas são desnecessárias? Quais são necessárias?

 

Agradeço as respostas

VLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pegue os requisitos da aplicação e "faça perguntas" ao modelo e veja se e como ele responde.

 

O Sistema deve permitir uma busca por opcionais de um carro.

O Sistema deve informar quantos carros temos por fabricante no pátio .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pegue os requisitos da aplicação e "faça perguntas" ao modelo e veja se e como ele responde.

 

O Sistema deve permitir uma busca por opcionais de um carro.

O Sistema deve informar quantos carros temos por fabricante no pátio .

 

Então Motta, o motivo para eu ter separado e criado esse tanto de tabelas é devido a isso. Deve haver a possibilidade de fazer uma busca avançada no sistema, onde o cliente poderá buscar por tipo de motor, por opcionais específicos, até mesmo por veículos com somente duas portas ou quatro portas... Algo desse tipo...

 

 

Não é preciso tabelas para guardar apenas 1 tipo de informação... tipo combustivel, portas, motor, etc..

 

 

 

Concordo quando se fala de ano fabricação e ano modelo, realmente posso criar duas colunas a mais na tabela veiculo e eliminar essas duas tabelas, agora quanto ao motor, tipo de combustível, portas etc... eu já não sei, meu sistema deverá permitir uma busca avançada e acho que nesse caso devo desmembrar vários tipos de dados ou estou errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os Requisitos da Aplicação são definidos antes desta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde. Tudo bem com vocês?

 

Estou ajudando o Lívio neste projeto e também não sei se estamos no caminho certo.

Vou tentar explicar resumidamente qual são os nossos requisitos e porque fizemos desta forma para melhor entendimento.

 

Nós precisamos cadastrar veículos e cada veiculo possui um tipo de veiculo, que no caso é carro, moto ou caminhão. Cada tipo pode ter

uma marca, que possui uma lista de modelos. Por exemplo Fiat possui siena, bravo...

 

Fizemos uma tabela de combustível ligado ao tipo de veiculo porque caminhão tem diesel e moto não possui, assim diferenciamos na hora de procurar veiculo através do seu combustível. E seguindo este raciocino fizemos diversas tabelas.

 

Agora vamos aos requisitos principais.

 

Pesquisar veiculo por acessório, marca, modelo, motor, porta, categoria, ano de fabricação e modelo, preço, cor.

 

Boa parte dessas tabelas serão preenchidas por nós, obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe minha ignorância Motta, mais não o compreendi...

 

Quando se vai fazer um Sistemas uma lista de requisitos que este demanda deve ser levantada antes.

Esta lista que seria usada para validar o modelo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde. Tudo bem com vocês?

 

Estou ajudando o Lívio neste projeto e também não sei se estamos no caminho certo.

Vou tentar explicar resumidamente qual são os nossos requisitos e porque fizemos desta forma para melhor entendimento.

 

Nós precisamos cadastrar veículos e cada veiculo possui um tipo de veiculo, que no caso é carro, moto ou caminhão. Cada tipo pode ter

uma marca, que possui uma lista de modelos. Por exemplo Fiat possui siena, bravo...

 

Fizemos uma tabela de combustível ligado ao tipo de veiculo porque caminhão tem diesel e moto não possui, assim diferenciamos na hora de procurar veiculo através do seu combustível. E seguindo este raciocino fizemos diversas tabelas.

 

Agora vamos aos requisitos principais.

 

Pesquisar veiculo por acessório, marca, modelo, motor, porta, categoria, ano de fabricação e modelo, preço, cor.

 

Boa parte dessas tabelas serão preenchidas por nós, obrigado pela atenção.

 

Quando se vai fazer um Sistemas uma lista de requisitos que este demanda deve ser levantada antes.

Esta lista que seria usada para validar o modelo.

 

Motta, os requisitos básicos são os citados acima pelo Kaiserxx... Vlw pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Complementando a resposta do colega Motta.

 

O que ele quer dizer, é que, antes de uma modelagem, você precisa saber o que o seu sistema "fará" qual o comportamento dele em uma busca avançada.

 

Tipo, você pode criar a tabela veículos e colocar nela o máximo de campos que irão receber valores únicos... ou seja valores sem precisar de mais de 1 informação vinculado a aquele registro.

 

Façam as perguntas, meu sistema vai buscar o que nessa busca avançada ? você precisa, por exemplo ter separado as tabelas da

 

 




MARCA, MODELO, OPCIONAIS, CATEGORIA, ALBUM.

 

E ao meu ver, nada mais que isso. As outras informações você pode inserir na tabela veículo sem problema algum, já desenvolvi um projeto desses do 0, e não utilizei mais que isso, para o fim das informações dos veículos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi... ficou bemmm melhor...

 

 

Você agora só precisa diminuir mais os valores do varchar, por exemplo o campo KM_VEI(45) para que você quer esse tanto de espaço apenas para armazenar um km ??? visando que KM são números... Você utiliza muito, mais muito o varchar e INT. Em sua modelagem poderiam ser utilizados o SMALLINT(5), CHAR(7) para as placas, etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Entendi... ficou bemmm melhor...

 

 

Você agora só precisa diminuir mais os valores do varchar, por exemplo o campo KM_VEI(45) para que você quer esse tanto de espaço apenas para armazenar um km ??? visando que KM são números... Você utiliza muito, mais muito o varchar e INT. Em sua modelagem poderiam ser utilizados o SMALLINT(5), CHAR(7) para as placas, etc.

 

 

 

OK. Vou estudar um pouco sobre os tipos de campos e refazer a modelagem. Agradeço a ajuda e disposição Alaerte. Agradeço a ajuda de todos. Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veiculos

 

CHAR = Caracterer

 

Consiste para armazenar dados estáticos que não variam o seu tamanho, como por exemplo siglas de estados... seria char(2)

 

 

 

KM_VEI INT(7) // faça um filtro no php para que só aceite números.
PLA_VEI CHAR(7)  // Pois a placa do carro não ultrapassa os 7 caracteres, neste caso, como se trata de letras e números, utilize CHAR.
COR_VEI VARCHAR(20) 

 

 

Tabela

 

 




Opcionais_has_veiculo

ID_VEI SMALLINT()// já é o suficiente, não é necessário big int..

 

 

Tabela

 

Album

 

 

ID_VEI SMALLINT()
NOM_ALB VARCHAR(100)

Tabela FOTO vocÊ também poe o nome como varchar 100.

 

 

Vou te explicar a diferença de um para o outro.

 

 

VARCHAR / CHAR = Mesmo que você tenha ele definido como 100, se você gravar apenas 50 caracteres, ele terá o seu tamanho correspondente aos 50 caracteres, enquanto a CHAR, se você tiver ele definido como 7, mesmo que você grave apenas 1 caractere, ele terá o tamanho de 7 do mesmo jeito, por isso utilize-o para valores estáticos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veiculos

 

CHAR = Caracterer

 

Consiste para armazenar dados estáticos que não variam o seu tamanho, como por exemplo siglas de estados... seria char(2)

 

 

 

KM_VEI INT(7) // faça um filtro no php para que só aceite números.
PLA_VEI CHAR(7)  // Pois a placa do carro não ultrapassa os 7 caracteres, neste caso, como se trata de letras e números, utilize CHAR.
COR_VEI VARCHAR(20) 

 

 

Tabela

 

 




Opcionais_has_veiculo

ID_VEI SMALLINT()// já é o suficiente, não é necessário big int..

 

 

Tabela

 

Album

 

 

ID_VEI SMALLINT()
NOM_ALB VARCHAR(100)

Tabela FOTO vocÊ também poe o nome como varchar 100.

 

 

Vou te explicar a diferença de um para o outro.

 

 

VARCHAR / CHAR = Mesmo que você tenha ele definido como 100, se você gravar apenas 50 caracteres, ele terá o seu tamanho correspondente aos 50 caracteres, enquanto a CHAR, se você tiver ele definido como 7, mesmo que você grave apenas 1 caractere, ele terá o tamanho de 7 do mesmo jeito, por isso utilize-o para valores estáticos.

 

Nossa! Me ajudou demais sua explicação. Grato pela ajuda mais uma vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.