Бих използвал справочна таблица за съобщенията, които ще съхраняват кой има правата да види това съобщение
table->message | table->messageUsers
id->0, message->'hi', user_id->1 user_id->1, message_id->0
user_id->2, message_id->0
По този начин, ако потребител изтрие своето съобщение, той всъщност просто изтрива връзката си със съобщението, а не самото съобщение. просто ги премахвате от таблицата messageUsers. или задайте активно поле на 1 или 0.