2015-08-20 2 views
0

Не знаю, где это поставить, но его просто общий вопрос для некоторой помощи, поскольку я застрял. Мне было поручено разработать базу данных бронирования для кемпинга, одно из требований - это то, что должно быть возможно отметить одну из смол, недоступную для 24-часового периода, единственный способ, которым я могу думать, что это делается с небольшим тип данных, и когда бронирование будет выполнено, sql проверяет, установлен ли бит, и если это тогда, тангаж недоступен. это хорошо для того, чтобы маркировать его недоступным с того дня, когда вы его установили, но мне интересно, есть ли способ сделать это, чтобы вы могли направить дату, чтобы он не был доступен на определенную дату/дату, тогда бронирование все равно могло быть сделанные на этом поле, но только не в течение желаемых дат. любые идеи или помощь будут высоко оценены.делает «шаг» недоступным, для конкретных дат,

ответ

1

Просто определение булево столбец в таблице смол действительно может быть неадекватной:

  • , если мы хотим определить недоступности период в будущем

  • если мы хотим знать, когда поле было недоступен

  • и не забывайте, что вам нужно будет изменить логическое значение через 24 часа.

Если вам не нужно управлять неготовности периодов в будущем или отслеживать старые периоды, вы можете определить обнуляемое столбец даты, которая будет содержать следующую дату доступности. Поэтому, когда шаг начинает недоступен, он примет текущую дату + 24 часа. Таким образом, доступные смолы имеют дату NULL или дату < до текущей даты.

В противном случае, я думаю, вы должны определить таблицу, содержащую идентификатор высоты, дату начала и дату окончания недоступности.

+0

Мне нравится дата начала и окончания идеи таблицы тангажа. поэтому, когда список доступных шагов выполняется в течение определенного периода времени, он сначала проверяет, находится ли он в таблице бронирования в течение этих времен, и если дата начала и окончания бронирования находится в начале/конце даты подачи table, будет ли это работать, если в таблице тангажа есть нулевые значения, –

+0

Если я хорошо понимаю идею, да, я думаю, она будет работать, если есть NULL даты: шаг будет доступен для даты, если дата не находится между даты или если даты NULL – berty

+0

Brill, это отлично сработало, я только что добавил два начальных и конечных столбца в таблицу тангажа и еще две строки к моему запросу, чтобы увидеть, не совпадают ли даты между началом/окончанием или значениями null, и он возвратил все доступные, это отлично поработало –

0

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

В вашем дизайне базы данных у вас будет таблица site и таблица booking. таблица booking будет указывать на site и иметь дату и время начала и конца. Когда вы создаете новое бронирование для сайта, убедитесь, что оно не попадает в диапазон для любого другого бронирования сайта.

Смежные вопросы