Что касается обратной связи, я бы пошел с KISS - вставлять новую строку в таблицу «Обратная связь» только при заполнении фактической обратной связи. Нет необходимости предварительно заполнять строки.
Другой вариант - просто переместить поле «сообщения» обратной связи обратно в таблицу «Event_RSVP»; и обновите это поле после обратной связи. Недостатком здесь является то, что вы не можете иметь несколько сообщений в одном и том же отзыве, если решите, что вам это нужно, в то время как отдельную таблицу отзывов гораздо проще изменить, чтобы разместить несколько сообщений для каждого отзыва.
Кроме того, независимо от обратной связи, я бы удалил user_id из события, если бы это был идентификатор посетителя (если это был идентификатор оригинатора, я извиняюсь и оставляю его). События не должны содержать списки пользователей. Если вы хотите отследить, кому было отправлено приглашение, создайте новую таблицу «Приглашения» (event_id, user_id) или, что еще лучше, просто отследите приглашения через таблицу RSVP, вставив новую строку после отправки приглашения и обновления » rsvp_status "когда пользователь на самом деле RSVPs.