Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Tem algum problema em deixar algum campo null no banco de dados?

Senhores, tem algum probelema em eu deixar algum campo null no banco de dados, vou dar um exemplo que eu estou tendo agora, imagine o cenario de compra, depois pega como vai ser a compra, a vista ou a prazo, e depois pega a quantidade de parcela correto? ai to fazendo minhas parcelas caso o cliente escolha a prazo, ok.. e depois se o cliente for compra a vista não tem como eu deixar uma parcela com a opção 0 porque nenhum numero se divide por 0, ai pensei a solução é deixar quantidade de parcela nulla caso o compra seja a vista? tem outro jeito de resolver a situação? o compo parcela é do tipo integer. Ou pode deixar sem problemas o campo la como null?

8 respostas

vc pode deixar null.. mas nao pode ser 1?

Oi Alisson, não tem problema existirem campos opcionais em sua tabela, há vários casos em que isso pode acontecer.

Mas, nesse caso, talvez valha a pena você modelar seu sistema de uma forma um pouco diferente. Como criar um modelo novo chamado Parcela que possui um valor, data de vencimento, data de pagamento e vários outros atributos que sua parcela pode ter

Alberto se for a vista pode deixar com o valor 1? porque penso se for valor 1 é a prazo, deixando 1 é a vista?

olha o banco aceita null (vazio) no sistema pois seria um dado "opcional". você consegue observar melhor que tipo de valores os dados e informações devem receber quando se estudo Modelagem de Dados, algo que impacta severamente no seu banco e sistema caso não saiba fazer corretamente.

Philippe tenho uma tabela com quantidadeDeParcela, será que seria uma boa ter uma tabela de parcela? para criar a data de vencimento igual me falo? esses campos não poderia ter na tabela compra? Gostei da sua ideia de criar uma tabela de Parcela, só que como eu iria controlar uma data de parcela? por metodo? ou manualmente mesmo? e nessa classe parcela, posso fazer toda as minhas parcela tipo a quantidade de parcela na tabela parcela mesmo?

Alisson,

Isso de poder ser null ou não, ter valor 1 é a prazo ou a vista, depende fortemente da regra de negócio definida. Não existe um formato taxado como o 100% correto e nada mais serve. Existem os casos onde uma coisa pode fazer mais sentido lógico que outra, mas para o problema que você apresentou, realmente não consegui enxergar diferença, ou forte necessidade de uma abordagem específica.

Resumindo: se você quiser considerar que quantidadeParcelas = 1 já significa que é a prazo, faça desta forma, não tem problema nenhum. Como consequencia, se quiser que quantidadeParcelas = 0 signifique que é a vista, vai dar certo. Talvez para termos de significado, seria interessante que o null só existisse nesse campo enquanto a venda está ocorrendo e ainda não se chegou na tela de informar o pagamento, uma vez que chegou e definiu as parcelas, ou é 0 para a vista, ou 1+ para prazo.

Tem várias outras modelagens que atenderiam fazendo funcionar da mesma forma certo, não existe barreira definidora aqui nesse caso. Já vi ter um Enum pra definir se era PRAZO ou A_VISTA, ou seja, um campo diferente que definia isso, nem era a quantidadeParcelas.

Espero ter contribuído, abraço.

solução!

Oi Alisson, depende muito do seu sistema

sobre campos não poderia ter na tabela compra pode ter na tabela compra sim, mas se for na tabela compra, não tem como você controlar por exemplo o caso de parcelas com valores diferentes, talvez um cliente que queira adiantar uma parcela, pensando em uma possível evolução do sistema, vale a pena ter uma tabela Parcela

Você pode controlar essas parcelas com métodos nela mesmo, por exemplo pagou(), estaVencida() ou outros métodos que você achar que fazem sentido.

Emerson muito obrigado cara, me ajudou muito com de verdade, vou fazer do seu jeito, e Ehlert muito obrigado também, clarou de mais com suas informação fico grato de verdade! um grande abraço a todos que me responderam!