DÊVIDA SUPER SIMPLES SOBRE NORMALIZA?ÃO

MARCOS 21/01/2016 10:32:25
#456330
Bom dia!
Colegas,estou com uma dúvida simples sobre
modelagem de dados:

O caso:

Programa para montar Escala de trabalho de uma frota de Vans.

Regras de negócio:

- A frota tem várias linhas (6)
- Cada linha, diversas Vans (14)
- Cada Van,pode ser dirigida por qualquer motorista (São 19)

O problema:

Ao modelar(Normalizar),esta simples situação,defini quais são as entidades e o tipo de relacionamento entre elas.

O que já fiz:

Defini 3 entidades: Linha,Carro(VAN) e Motorista.

- Eu sei que no caso da Linha e do Carro o relacionamento é de 1 X N, pois para cada linha eu tenho vários carros,porém cada
carro pertence a uma única linha.

Minha dúvida:

Qual o tipo de relacionamento entre Carro e Motorista ( é de 1 X 1 ou 1 X N)?

Estou na dúvida,pois a principio seria 1 X 1 , pois cada carro pode ter 1 e somente um Motorista,e cada motorista é designado para
apenas um carro.Mas,por outro lado,como é uma escala,para cada carro eu posso designar [Ô]qualquer[Ô] motorista. Isto muda o tipo
de relacionamento,ou não interfere e devo manter o tipo 1 X 1???

Agradeço qualquer ajuda.
GEORGEDUT 21/01/2016 11:01:42
#456333
Desculpe amigo vc já criou um algoritimo para seu programa?

Numca esqueça sem uma logica criada numca sai nada ;D


Mais um toque vc deve criar uma base de dados para admistrar isso fica mais facil de trabalhar e mais profissional.
MARCOS 21/01/2016 12:50:16
#456343
Pessoal,
Não criei o algoritmo ainda,pois prefiro modelar (Normalizar) o Banco de Dados primeiro.
Algum colega,que saiba modelar BD,pode me dizer ,se baseado nestas regras de negócio
simples que descrevi,qual é o tipo de relacionamento correto para as entidades Carro e
Motorista?
JABA 21/01/2016 15:09:28
#456348
Citação:

Qual o tipo de relacionamento entre Carro e Motorista ( é de 1 X 1 ou 1 X N)?

Estou na dúvida,pois a principio seria 1 X 1 , pois cada carro pode ter 1 e somente um Motorista,e cada motorista é designado para
apenas um carro.Mas,por outro lado,como é uma escala,para cada carro eu posso designar [Ô]qualquer[Ô] motorista. Isto muda o tipo
de relacionamento,ou não interfere e devo manter o tipo 1 X 1???



Se cada carro só pode ser designado para um motorista, então o certo é você manter o 1 x 1 mesmo, podendo-se incluir nulos. Se por acaso o motorista morrer e houve a necessidade de troca-lo, é só utilizar o update com o código de outro motorista que não está na escala, pois se tiver, a restrição vai bloqueá-lo, o que faz todo sentido, já que você não quer deixar que cada motorista fique com mais de uma VAN. Com isso você previne que o seu banco fuja das regras de negócio e garante sempre a consistência.
KERPLUNK 21/01/2016 19:37:46
#456372
Você criou os objetos para compor a escala, que são o carro, linha e motorista. Agora, você precisa de um outro objeto onde você vai unir todas essas informações:
[th][/th]



Escala
CodigoLinhaCarroMotoristaData
142154821/01/2016
238854321/01/2016


Acho que deu pra entender. As entidades são todas componentes de uma outra entidade que é a escala. Quando for incluir uma escala, inclua também regras para bloquear um mesmo motorista em dois carros, mesmo carro em duas linhas e qualquer outra regra que precisar.
MARCOS 22/01/2016 09:46:16
#456382
Para o colega,Jaba:

Jaba,embora cada Van possa ser designada para um único motorista (De cada vez).Qualquer motorista poderá ser designado
na escala,para qualquer das VANS.Isto muda alguma coisa no tipo de relacionamento???


Para o colega Kerplunk:

Kerplunk,eu já havia de fato previsto a tabela escala,que aliás seria a entidade principal neste caso.Mas,mesmo depois
de adiciona-la ao Banco,como fica na sua opinião,o tipo de relacionamento entre Carro e Motorista(1X1,1XN,ETC..)???

Agradeço a ajuda dos colegas
ACCIOLLY 22/01/2016 13:56:15
#456391
Resposta escolhida
oi MARCOS acabei de responder a sua pergunta em outro post seu. Acredito que esteja relacionado ao mesmo projeto. Mas o que posso dizer é o seguinte.

Se cada van é de responsabilidade de um motorista, coloque uma chave estranjeira da entidade motorista na entidade van com cardinalidade 1:1. Na entidade escala coloque como chaves estrangeiras motorista e van com cardinalidade 1:n

quando estiver na codificação, quando o usuario colocar o codigo da van, automaticamente é selecionado o código do motorista, mas o usuário terá a liberdade de trocar de motorista, caso aconteça de um estar de atestado, folga, férias, etc...

Sei que é meio cedo pra pensar em codificação, mas a codificação é a contiunuação da base, portanto é bom já planejar a forma como vai fazer, pra não ter que voltar lá pra base no meio ou no fim do projeto. Utilize ferramentas de UML pra planejar tudo cara! depois de planejado converse com seu cliente, veja se aquilo que vc planeja é realmente o que ele quer. se for faz um contrato e pede a assinatura dele. Isso vai te livrar de um monte de dor de cabeça. Depois taca-le pau! na base e na codificação! rsrsrsrsrs
KERPLUNK 22/01/2016 18:06:05
#456405
MARCOS, na tabela de escala, o relacionamento vai ser sempre 1x1.
MARCOS 25/01/2016 17:39:01
#456521
Muito obrigado a todos.
Continuo aprendendo.E o que é mais importante,
Aplicando o que aprendo aqui.
Tópico encerrado , respostas não são mais permitidas