Я хочу создать систему динамических полей. Идея заключается в том, что владелец сможет создавать динамические поля, скажем, для клиентов его компании. Проблема в том, что со структурой базы данных, которую я придумал, требуется использование полиморфной ассоциации.
Моя структура следующая:
Таблица полей, состоящая из следующих столбцов:
ID, FieldName, FieldType (Тип поля можно избежать, вероятно)
Таблицы значений полей (Существует несколько таблиц значений, по одной для каждого типа данных динамических полей, например. Таблица для хранения значений DATETIMES, таблица, в которой хранятся значения DECIMALS и т. Д. Эти таблицы имеют идентичную структуру, но с другим типом данных для столбца значений! Они состоят из следующих столбцов:
ID, FieldID, CustomerID, FieldValue
Теперь, чтобы получить значение поля, я должен выполнить LEFT JOINs между таблицами значений и таблицами полей и сохранить только столбец значения, значение которого не равно NULL , поскольку этот единственный столбец значения, если он есть, будет иметь значение! Конечно, это неэффективно, и я пытаюсь избежать этого. Любые предложения, даже если они требуют совершенно другой структуры базы данных, приветствуются. Я также использую MySQL вместе с EntityFrameworkCore.