Реляционная база данных - не лучший выбор для этого.
Почему?
Вы хотите, чтобы все ваши редакторы передавали изменения вашему проигрывателю.
Ваш игрок - по сути - сервер для всех этих редакторов. Вашему игроку нужно несколько открытых соединений. Он должен слушать все эти связи для изменений. Он должен отображать эти изменения.
Если изменения действительно велики, вы можете перейти к гибридному решению, в котором редакторы сохранят изменения и , уведомив об этом игрока.
В любом случае, редакторы должны уведомить своего игрока об изменении. Это намного, намного проще, чем игрок, пытающийся обнаружить изменения в базе данных.
Лучшим дизайном является сервер, который принимает сообщения от редакторов, сохраняет их и уведомляет игрока. Этот сервер не является ни редактором, ни игроком, а всего лишь посредником, который обеспечивает обработку всех сообщений. Он принимает соединения от редакторов и игроков. Управляет базой данных.
Есть две реализации. Сервер это игрок. Сервер отделен от плеера. Дизайн сервера не меняется - только протокол. Когда сервер является игроком, тогда сервер вызывает объекты игрока напрямую. Когда сервер отделен от проигрывателя, сервер записывает данные в гнездо проигрывателя.
Когда игрок является частью сервера, объекты игрока вызываются напрямую при получении сообщения от редактора. Когда игрок находится отдельно, маленький читатель собирает сообщения из сокета и вызывает объекты игрока.
Плеер подключается к серверу, а затем ожидает поток информации. Это может быть либо ввод от редакторов, либо ссылки на данные, которые сервер сохранил в базе данных.
Если ваш трафик сообщений достаточно мал, чтобы задержка сети не была проблемой, редактор отправляет все данные на сервер / проигрыватель. Если трафик сообщений слишком велик, то редактор пишет в базу данных и отправляет сообщение только с FK базы данных на сервер / проигрыватель.
Пожалуйста, уточните "Если редактор выходит из строя во время уведомления, плеер постоянно запутался" в вашем вопросе.
Звучит как плохой дизайн для сервиса игрока. Это не может быть "навсегда испорчено", если это не получает состояние от различных редакторов. Если он получает состояние от редакторов (но пытается отразить это состояние, например), то вам следует рассмотреть проект, в котором проигрыватель просто получает состояние из редактора и не может «навсегда запутаться».