У меня небольшая проблема: как лучше всего сохранить пару ключ-значение JSON в реляционной базе данных.
Проблема в том, что пользовательский интерфейс ReactJS имеет выпадающие поля, которые могут быть единичными или множественными. Кроме того, значением может быть строка, число, массив и т. Д. Итак, я думал о том, чтобы иметь одну таблицу БД, которая могла бы хранить эту информацию, но, учитывая, что тип значения не является фиксированным, это может быть не лучшим подходом.
В настоящее время я не могу позволить себе роскошь использовать базу данных NoSQL, что уменьшило бы эту проблему.
Итак, чтобы поместить это в контекст, возьмем следующее:
@Entity(name="SELECT_OPTION")
@Getter
@Setter
public class SelectOption {
/**
* A unique identifier for the object, serving as the database primary key.
*/
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
private String id;
private String label;
private Long value;
}
Проблема с вышеупомянутым состоит в том, что значение не просто Long, но может быть String, Boolean, Array of int / string и т. Д.
Я рассмотрел просто сохранение всех полей в виде строки вместе с типом (предоставленным клиентом), и когда я сохраняю его, у меня есть значение в виде строки, и когда мне нужно изменить это представление, у меня есть тип как Что ж.
В конечном счете, я просто хочу самый чистый подход. Цель этого состоит в том, чтобы позволить различным раскрывающимся спискам в пользовательском интерфейсе с различными типами значений сохранять свои значения выбора вниз. Стол не используется ни для чего другого.