powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер проверки postgresql
5 сообщений из 5, страница 1 из 1
Триггер проверки postgresql
    #39211968
linali
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Предполагается, что на сервере спроектирована база данных, согласно приложенной в фото модели... Необходимо на языке sql создать такую триггерную функцию, которая могла бы проверять, что выдаваемая именно сейчас книга (положим, код выдачи) могла быть выдана, что общее количество экземпляров именно на ней не закончилось. Изначально я вставляла проверку такого вида: сравнивала код экземпляра с общим количеством экземпляров, если код экземпляра превышал общее количество, происходил откат транзакции. Но преподавателя такой вариант не устроил, потому что злоумышленник может иметь доступ к нашей базе и менять вручную id-шники книг (ну сами коды экземпляров)... Как тогда организовать корректную проверку? У меня была мысль создать отдельную переменную counter для удобства... Но я не знаю, как всё это правильно организовать.. может, у кого-то есть мысли? Буду благодарна
...
Рейтинг: 0 / 0
Триггер проверки postgresql
    #39212633
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
linali,

создавайте индекс на "Выданные книги", по "Код книги", где "Дата возврата" IS NULL. тогда постгресу будет легче считать количество выданных книг. ну и проверяйте сколько выданных на данный момент SELECT count("Код экземпляра") FROM "Выданные книги" WHERE "Дата возврата" IS NULL AND "Код книги" = ?;

P.S.
имена полей базы данных не для чтения юзверем, да и запросы читаются както не натурально. так что создавайте поля на международном языке програмирования, коим по факту является английский.
...
Рейтинг: 0 / 0
Триггер проверки postgresql
    #39212646
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
linali,

хотя, если уж злоумышленик может влезть в БД, тогда решений наверное нет. злоумышленник может поменять количество экземпляров в таблице книга. да и вообще, если уж он в БД, да ещё и имеет права менять что либо, ефективность проверок и перепроверок уже под вопросом.
...
Рейтинг: 0 / 0
Триггер проверки postgresql
    #39212883
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Преподаватель, (я так думаю) имел в виду, что факт выдачи - это код книги + дата выдачи не NULL + дата возврата NULL. Требуется посчитать количество записей удовлетворяющих данному условия и сравнить с общим количеством.

Честно говоря схема вызывает много вопросов. Например дата выдачи NULL, а дата возврата NULL.
...
Рейтинг: 0 / 0
Триггер проверки postgresql
    #39214181
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
linali,

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

Вообще-то тут надо уникальный ключ на экземпляры с датой возврата is null.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер проверки postgresql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]