В данном случае, для 1 работы может быть действительно только 1 исполнитель.
Сейчас у меня реализовано так, как в первом варианте, но есть проблема в том, чтобы получить список всех сотрудников своих работодателей (если их несколько) при этом не показывать в списке текущего пользователя и дубликатов (например пользователь назначен исполнителем у нескольких моих работодателей), но я так понимаю, даже если сделаю тот вариант, который Вы предложили, эта проблема останется?
Так и есть, а в message_views хранятся просмотры пользователей для каждого из сообщений