В MySQL нет простого способа сделать это. Вот два метода, использующие триггеры.
Один из способов - для insert
триггера подсчитать количество строк в activities
для данного члена и не допустить обновления, превышающие пороговое значение.
Второй метод состоит в том, чтобы изменить members
так, чтобы в нем был столбец с количеством действий - обычно требуются триггеры на insert
, delete
и, возможно, update
в activities
. Затем это значение можно использовать в триггере insert
для действий для проверки значения.
Возможны два других метода. Если все ваши модификации данных заключены в хранимые процедуры, вы можете реализовать их в хранимых процедурах, а не в базе данных. При проектировании систем я часто использую этот подход, но вы должны быть очень осторожны, чтобы все модификации контролировались.
Наконец, если вы хотите разрешить только два или три действия, у вас может быть отдельный столбец в элементах, относящихся к каждому. Я не в восторге от этого подхода, но он удовлетворяет потребность в небольшом количестве действий на участника.