помогите с бд InterBase 6,0 и Borland Delphi 7

программирование базы данных Delphi делфи

есть бд с полями номер, дата прибытия, дата уезда, имя постояльца. подскажите как сделать чтобы на 1 номер нельзя было добавить 2 постояльцев. Пример: в номере 1 приехал постоялец 12.12.12 до 12.12.13
надо сделать так чтобы 2 постояльца нельзя было добавить в эту же дату или чтоб они пересекались.

Примечание:
SET SQL DIALECT 3;

/* CREATE DATABASE 'C:\123123123123\otel1.gdb' PAGE_SIZE 4096

DEFAULT CHARACTER SET WIN1251 */

/* Table: KLIENT, Owner: SYSDBA */

CREATE TABLE "KLIENT"
(
"NUMBER" NUMERIC(9, 0) NOT NULL,
"ID" NUMERIC(9, 0),
"FIO_KL" VARCHAR(20) CHARACTER SET WIN1251,
"DAKUM" VARCHAR(20) CHARACTER SET WIN1251,
"SERIYA" NUMERIC(4, 0),
"NUMBER_P" NUMERIC(6, 0),
"DATA_PRIB" DATE,
"DATA_UEZDA" DATE,
PRIMARY KEY ("NUMBER")
);

/* Table: NOMERA, Owner: SYSDBA */

CREATE TABLE "NOMERA"
(
"NUMBER" NUMERIC(9, 0) NOT NULL,
"STOIMOST" DECIMAL(9, 0),
"VID" VARCHAR(10) CHARACTER SET WIN1251
);
ALTER TABLE "NOMERA" ADD CONSTRAINT "P1" FOREIGN KEY ("NUMBER") REFERENCES KLIENT ("NUMBER");


/* Grant Roles for this database */


/* Grant permissions for this database */

Примечание:
1) не надо 2) я даже не знаю как это примерно сделать 3) как-то более понятен ну запросами проблемки я в них 0(
Ответы:
1) нужно допускать совпадение даты выезда одного клиента с датой въезда другого
2) подойдите к проблеме с другой стороны:
чем запрещать, лучше выдавать на выбор варианты с количеством номеров на дату (например, в виде календаря). и, соответственно, разрешать вносить только из этих вариантов. так и менеджеру будет понятно сколько каких номеров на какой период свободно.
3) если вариант из п.2 не подходит: делайте запрос перед добавлением, который проверит доступность номера в указанные даты.


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.