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.

  1. disponível

  2. locado

  3. reservado

  4. 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…

como fazer esse controle?

4 Respostas

A

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.

vou implementar!

Grato a todos!

Criado 4 de dezembro de 2012
Ultima resposta 5 de dez. de 2012
Respostas 4
Participantes 4