Dúvida melhor prática armazenagem em banco de dados
4 respostas
SandroSoftwares
Amigos, hoje já criei um tópico sobre qual seria a melhor forma de armazenar data com hora no banco de dados e descobri que Timestamp resolve este problema.
Agora me vi diante de um pepino que já tentei resolver mais decidi postar aqui…
Digamos que no meu software de locação de dvds eu tenha 4 possibilidades para um determinado dvd.
disponível
locado
reservado
indisponível (neste caso aqui o dvd está arranhado por exemplo mas não quero deleta-lo do meu banco)
Como controlar esses 4 status num único banco?
Por exemplo: quando eu cadastro o primeiro dvd eu seto pra ele o status disponível, mas a questão é: disponível com data inicial na data do cadastro, mas qual será a data final ???
na primeira movimentação com este dvd (alguém reservou por exemplo) eu modifico o status pra reservado no periodo de tanto a tanto, mas neste caso quebrei a linha de tempo do disponível…
Considerando que você pode ter mais de uma cópia de cada filme, poderia fazer:
Uma tabela de filmes: descrição, atores, bla bla bla…
Uma tabela de mídias: código do filme, tipo de mídia (dvd, vhs, blu-ray), data de compra
Uma tabela de locação: data início, valor, data fim, cliente…
A informação se um dvd está quebrado pode ficar diretamente na tabela de mídias.
Você sabe se um filme está alugado ou não, enquanto um aluguel estiver aberto (retirada sem devolução).
mateusviccari
fiz meu tcc pra sistema de bibliotecas que é praticamente igual a locadora, e cheguei a conclusão que o melhor jeito de guardar a reserva é fazendo a reserva do livro e nao dos exemplares desse livro. entao voce terá uma tabela reserva e lá voce irá guardar uma reserva para um livro X, depois o resto(permitir retirada de exemplares retirados, etc.) é pura regra de negocio.
ManoJava
Boa tarde!
Vendo sua dúvida penso que seu problema sobre a disponibilidade do dvd poderia ser resolvido com um campo “status” ou “situação” do dvd, assim seria bem simples classificar e separar seus dvd’s,
quanto a excluir um dvd que esteja riscado, vc pode usar exclusão lógica através desse campo status.
Att.
SandroSoftwares
Amigos, encontrei uma solução graças a vcs…
Na verdade o problema de ter que registrar a DISPONIBILIDADE é complicado pois esta varia da data do cadastro até infinito… (não sabemos quando irá ficar reservado ou locado…).
então resolvi simplesmente não mais registrar a disponibilidade.
Registrarei sim a reserva e a locação (por que estas possuem datas fixas… de tanto a tanto…).
pra saber se o DVD PAIXÃO DE CRISTO está disponível faço uma consulta na tabela status do dvd e vejo se para aquele período selecionado pelo usuário existe reserva ou locação. Se houver NÃO ESTÁ DISPONÍVEL. Se não houver ESTÁ DISPONÍVEL.