Как лучше хранить данные в MySQL для проекта Java?
Столкнулся с проблемой и не знаю, как будет устроить хранение данных правильно. Имею АПИ сервис для отправки емейлов с телом в виде html. Краткий принцип работы: происходит добавления емейла в очередь в БД, через некоторое время специальный сервис отправляет это сообщение.
Для того, чтобы сообщение отправилось заполненное разными уникальными данными (например, имя пользователя) необходимо хранить эту переменную с нужным значением. Но т.к. могут быть разные шаблоны html, то невозможно хранить данные для заполнения в одном конкретном классе.
Была идея создать столбец content в таблице очереди и там хранить все что мне нужно в формате json, но может быть вы подскажете идею лучше.
Зависит от того, с чем проще работать отправляющему сообщения сервису. Но я бы раскладывал по отдельным полям - проще отбирать, а форматировать в нужный вид не проблема.
Akina, К сожалению, основная проблематика заключается в том, что нет какого-то стандартного набора полей. В первом html может потребовать имя и возраст пользователя, во втором его кредитную историю. Поэтому если создавать таблицу со всеми возможными полями, то будет крайне сложно предугадать какие параметры будут переданы в след раз, а таблица на 100+ столбцов, которую возможно нужно будет расширять не самое лучшее решение
Добрый день.
Как вариант вы можете хранить данные в виде json. Есть либа для hibernate - hibernate types
Но т.к. могут быть разные шаблоны html, то невозможно хранить данные для заполнения в одном конкретном классе.
Так не храните в конкретном классе. Создайте 1 общий родительский класс с общими полями. А также необходимые дочерние классы (по 1 на каждый шаблон).
А далее используйте https://www.baeldung.com/hibernate-inheritance
Краткий принцип работы: происходит добавления емейла в очередь в БД, через некоторое время специальный сервис отправляет это сообщение.
Я так понимаю, что это некий amqp сервис (rabbitmq, kafka и др), который слушает event и пр наличии отправляет майл?