Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Armazenando dados de calendário no MySQL


Sim, eu iria com isso, exceto que eu não removeria o registro quando o aluguel expirar - você saberá facilmente que um aluguel expirou porque está no passado, então você mantém automaticamente o histórico de aluguel também.

Afinal, há um número infinito de datas disponíveis, então você teria que limitar artificialmente o intervalo de datas suportado se fizesse o contrário (e armazenasse datas gratuitas).

No futuro. E, de certa forma, também no passado.

Além disso, suponho que você deseja algumas informações adicionais no caso de um serviço ser alugado (por exemplo, nome do locatário) e não haveria lugar para armazenar isso se o aluguel fosse representado por uma linha inexistente!

Como a granularidade do aluguel é de um dia inteiro, acho que você está olhando para uma estrutura de banco de dados semelhante a esta:



Observe como o RENTING_DAY PK evita naturalmente sobreposições.

Como alternativa, você pode abandonar o RENTING_DAY e ter START_DATE e END_DATE diretamente em RENTING, mas isso exigiria uma sobreposição explícita de cheques , que pode não ser dimensionado de maneira ideal .