На самом деле это довольно просто - все, что вам нужно, это ограничение UNIQUE для комбинации двух задействованных столбцов:
ALTER TABLE activityParticipant
ADD UNIQUE (activityId, personId);
Теперь, когда вы пытаетесь вставить строку, где есть дублирование, с другой строкой ( например, человек 235625 хочет зарегистрироваться во второй раз для действия 1), запрос завершится ошибкой.
Чтобы решить проблему «не может быть двух действий для одного и того же человека в один день», вы можете сделать то же самое для personId и date :
ALTER TABLE activityParticipant
ADD UNIQUE (date, personId);
Теперь человек 235625 не может зарегистрироваться для двух разных действий в один и тот же день.