Я смотрю на проблему, которая заключается в том, что пользователи загружают списки записей с различными структурами полей в приложение. Вторая часть этого также позволит пользователям указывать поля для сбора информации.
Это шаг за пределы того, что я сделал до того момента, когда я сам разработал бы статическую структуру RDMS. В некоторых отношениях все записи будут обрабатываться одинаково, поэтому для каждого из них будут обязательные общие поля. Почти все запросы будут выполняться по этим общим полям.
Моей первой мыслью было бы динамически сгенерировать новую таблицу для каждого импорта и еще одну для каждой спецификации поля захвата данных. Затем иметь основную таблицу с указанием для каждой записи в приложении вместе с общими полями, а затем поля, которые указывают имя таблицы, в которую были импортированы данные, и имя таблицы с полями сбора данных.
Дополнительная информация (метаданные?) О полях в динамически создаваемых таблицах может храниться в XML или в таблице «свойств».
Это будет означать, что когда пользователи войдут в приложение, я буду динамически выбирать, какую таблицу данных представлять пользователю, и в базе данных будет большое количество таблиц, скажем, не только многопользовательских, но и многопользовательских.
У меня вопрос: есть ли другие способы решения этой проблемы с изменяемым полем, я иду по незнакомому пути?
Я полагаю, что EAV потребовал бы, чтобы у меня была таблица, определяющая поля для каждой спецификации импорта / сбора данных, а затем еще одна таблица с данными импорта - значения полей, и это кажется непрактичным.