Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.  [new]
Helen95
Member

Откуда:
Сообщений: 8
Помогите написать триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.

Таблицы,которые нужно учитывать:

Create table Club_cards -----Таблица клубных карт
(Card_number NUMBER(4) PRIMARY KEY,
ID_tourist NUMBER(10) REFERENCES Tourists (ID_tourist),
Discount_(%) NUMBER(5));

Create table Payment ----- Таблица оплаты походов туристами
(ID_payment NUMBER(10) PRIMARY KEY,
ID_hike NUMBER(10) REFERENCES Hikes(ID_hike),
ID_tourist NUMBER(10) REFERENCES Tourists(ID_tourist),
Card_number NUMBER(4) REFERENCES Club_cards(Card_number),
Date_of_payment DATE);

То есть если турист заплатил за походы 3 раза,к его карте +1 процент, потом еще 3 похода ,еще +1 процент и так далее.
14 май 16, 11:45    [19172366]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.  [new]
Q.Tarantino
Member [заблокирован]

Откуда: Где-то рядом...
Сообщений: 12015
Helen95
То есть если турист заплатил за походы

сколько ты готов заплатить за решение данной задачи?
14 май 16, 13:44    [19172657]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.  [new]
школьное задание?
Guest
Helen95,

Фродо может оплатить 300 походов по одной копейке, не оплачиваю сумму полностью. А потом пойти бесплатно. Или потрать еще 3 рубля и начнет зарабатывать.
14 май 16, 13:51    [19172683]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.  [new]
Helen95
Member

Откуда:
Сообщений: 8
Q.Tarantino
Helen95
То есть если турист заплатил за походы

сколько ты готов заплатить за решение данной задачи?


Мне нужны хотя бы идеи, Как это сделать.А тут что-ли только за деньги помогают? Или это сарказм?
14 май 16, 14:27    [19172736]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1642
Helen95
Мне нужны хотя бы идеи, Как это сделать.


В триггере after insert on payment записывать туристу (точнее, клубной карте) бонус. Если бонус достиг N ( частный случай N = 3 ), увеличиваем процент скидки. Все в рамках транзакции.
В высоконагруженных системах это плохое решение, но для обучения - в самый раз.

Helen95
А тут что-ли только за деньги помогают?


В основном - нет, другие цели преследуются.

Helen95
Или это сарказм?


А вот сарказму и издевательств здесь в достатке.
14 май 16, 19:56    [19173444]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.  [new]
Helen95
Member

Откуда:
Сообщений: 8
dmdmdm,
Вот такой вариант-полный бред?Ну или может что-то изменить?Буду рада любому совету, так как триггеры вообще вызывают затруднение:(
CREATE TRIGGER Dicsount
AFTER INSERT ON Payment
FOR EACH ROW
DECLARE
counter NUMBER(3);
BEGIN
Select count(ID_tourist) into counter from Payment, Club_cards
Where Payment.ID_tourist = Club_cards.ID_tourist
IF counter MOD 3 = 0 THEN Club_cards.Discount_(%)+1;
END IF;
END;
14 май 16, 21:22    [19173703]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, чтобы после каждого третьего похода туристу начислялась скидка +1 процент.  [new]
Агенор
Member

Откуда: "Откуда вам знать, если вы ещё не попробовали?"
Сообщений: 1429
Helen95,

Дайте, пожалуйста, скайп. Я помогу.
14 май 16, 22:41    [19173907]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить