Я работаю над заданием в MYSQL. В таблице есть столбец, который отслеживает процент комиссии для автора. Значение комиссии в кортежах всегда должно составлять 100
R - это отношение R = {authorid, isbn, комиссия} (authorid, isbn) -> первичный ключ
Таким образом, в кортежи могут входить несколько авторов для каждого из них с разным значением комиссии. Мы должны обеспечить, чтобы комиссия всегда составляла 100, а не меньше или больше. Как мне это реализовать? Мне сказали использовать триггеры для реализации того же самого, однако у меня закончились идеи.
Я могу думать только о триггере, как показано ниже (логика высокого уровня)
SELECT isbn,sum(commission) FROM R GROUP BY isbn
Я получаю общую комиссию и проверяю, равно ли это значение 100 или нет, а затем отклоняю вставку /обновление на основе этого
Но это означает, что я буду отклонять случаи, когда пользователь хочет вставить 3 кортежа последовательно, где комиссия составляет 20,30,50 соответственно. Это действительный случай. Вставка будет выглядеть так:
INSERT INTO R(authorid,isbn,commission) VALUES (1,2,20)
INSERT INTO R(authorid,isbn,commission) VALUES (2,2,30)
INSERT INTO R(authorid,isbn,commission) VALUES (3,2,50)
Не могли бы вы мне помочь? Пожалуйста, дайте мне знать, если я не ясно. Я чувствую, что это необычно проводить такую проверку на стороне базы данных, однако это задание, поэтому я должен найти какое-то решение
Я смотрел в Интернете, если что-то подобное уже было решено. Посмотрел документацию по MYSQL и не повезло.