Eu tenho uma situação para criar meu banco de dados…
Tipo( Terrestre, Aero, Fluvial )
Meio( Carro, Onibus, Aviao, Barco)
Veiculo(
- se for carro (campos: PLaca, Hodometro, modelo, Marca)
- se for Onibus(campos: Empresa, nº bilhete)
- se for Aviao (campos: Empresa, nº Etiket, nº localizador)
e pretendo fazer combos aninhados… mais no banco como ficaria?
[quote=Guguuu]Eu tenho uma situação para criar meu banco de dados…
Tipo( Terrestre, Aero, Fluvial )
Meio( Carro, Onibus, Aviao, Barco)
Veiculo(
- se for carro (campos: PLaca, Hodometro, modelo, Marca)
- se for Onibus(campos: Empresa, nº bilhete)
- se for Aviao (campos: Empresa, nº Etiket, nº localizador)
e pretendo fazer combos aninhados… mais no banco como ficaria?[/quote]
Acredito que o melhor caso seria criar uma única tabela de veículos, aí na aplicação, dependendo do tipo do veículo tu preenche os campos necessarios para o mesmo.
Edit: uma única tabela para essa situação é claro:
Criar uma tabela para cada veículo está errado, pois, quando teu sistema precisar suportar mais um veículo você terá que criar mais uma tabela.
[/quote]
Isso é meio relativo… se formos pensar assim não temos como modelar o banco de dados e temos que usar meta-dados para tudo que é campo…
Nese caso é preciso analisar se vão ser somente estes tipos de veículo ou se vão poder ter outros. Se tipo de veículo for uma coisa meio que pré-definida não vejo problemas em criar varias tabelas diferentes, já que são caracteristicas diferentes.
No entanto se for partir para meta-dados, eu modelaria assim.
Tabela TipoVeiculo
id e tipo
Tabela CaracteristicasTipoVeiculo
id caracteristica
descricao caracteristica
id tipoveiculo
Tabela Veiculo
id veiculo
descricao veiculo
Tabela VeiculoCaracteristicas
id veiculo
id tipoveiculo
id caracteristica
preenchimento caracteristica
Desta forma um veiculo poderia ter mais de 1 tipo de veiculo e caracteristicas mistas (por exemplo um carro anfibio)
[quote=jmmenezes][quote=g4j]Concordo com o jks1903.
Criar uma tabela para cada veículo está errado, pois, quando teu sistema precisar suportar mais um veículo você terá que criar mais uma tabela.
[/quote]
Isso é meio relativo… se formos pensar assim não temos como modelar o banco de dados e temos que usar meta-dados para tudo que é campo…
Nese caso é preciso analisar se vão ser somente estes tipos de veículo ou se vão poder ter outros. Se tipo de veículo for uma coisa meio que pré-definida não vejo problemas em criar varias tabelas diferentes, já que são caracteristicas diferentes.
[/quote]
Entendo.
Mesmo assim prefiro optar por escalabilidade. Isso facilita bastante quando preciso fazer agrupamentos e contagens em relatórios por ex.