В таблицу с тикетам записывать id назначенного модератора
В таблицу *_history (ну или *_log) записывать дату смены назначенного модератора и сопуствующую информацию - какой модератор был, какой стал, комментарии может какие. Это можно сделать как на уровне приложения, так и на уровне БД. У случае с БД можно использовать триггеры.
Примерно такая структура
CREATE TABLE `ticket` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`assignee_id` int DEFAULT NULL,
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modified` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
`subject` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`body` text COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `ticket_assignment_log` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`ticket_id` int unsigned NOT NULL,
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`old_assignee_id` int DEFAULT NULL,
`new_assignee_id` int NOT NULL,
PRIMARY KEY (`id`),
KEY `i_ticket` (`ticket_id`),
CONSTRAINT `fk_ticket` FOREIGN KEY (`ticket_id`) REFERENCES `ticket` (`id`) ON UPDATE CASCADE
)