Отображение логических значений в диапазоны дат в реляционной базе данных - PullRequest
0 голосов
/ 25 июля 2011

Я не совсем уверен, правильно ли написан мой заголовок.

Допустим, у вас есть база данных для службы проката автомобилей, которая содержит информацию о том, какой автомобиль будет сдан в аренду в какое время.Автомобили можно сдавать в аренду несколько дней подряд, но не менее одного дня (поэтому время является атомным).

Как бы вы вписали это в реляционную базу данных?У вас есть строка для каждой даты с логическим значением, представляющим, будет ли машина использоваться в этот день?Или вы работаете по-другому?

Дополнительный вопрос: Какое решение сделало бы проверку того, сколько автомобилей арендовано в определенное время наиболее простым / быстрым?

спасибо,

малиновка.

Ответы [ 2 ]

2 голосов
/ 25 июля 2011

в таблице проката автомобилей есть дата выезда проката автомобиля и дата регистрации проката автомобиля, и вы можете определить, будет ли автомобиль сдан в аренду в данный день,
WHERE $date_to_check BETWEEN checkout_date AND checkin_date

0 голосов
/ 25 июля 2011

Почему бы не сделать две таблицы: АВТОМОБИЛИ и АРЕНДА?

В АВТОМОБИЛЯХ вы храните всю информацию о физическом автомобиле (модель, дата изготовления и т. Д.). В АРЕНДАХ вы храните всю информацию о самой аренде (время начала, окончания и т. Д.)

Вы связываете их с внешним ключом в АРЕНДАХ, который указывает на удостоверение личности автомобиля.

        CARS                                        RENTALS
idCar | model | ....            idRental | xIdCar | startDate        |     endDate
  1     Honda                       1         1     1/1/2010 10:30     1/1/2010 18:30
                                    2         1     1/1/2010 19:00     2/1/2010 10:30

Это должно решить оба ваших вопроса, так как вам нужно только запросить аренду на нужные вам даты и присоединиться к автомобилям

...