Для приложения мы собираем определенные данные формы. Пользователь может включать различные разделы по желанию.
Тип данных, которые должны быть получены в каждом разделе, является индивидуальным для каждого раздела. Иногда они являются простыми словарями пар ключ-значение. Иногда они содержат подкомпоненты с отношениями «один ко многим» или «многие ко многим». Хотя число разделов может увеличиваться, для каждого раздела будет известна схема.
Раньше разделы формы были исправлены, поэтому мы могли просто жестко кодировать структуры таблиц для каждого раздела. У нас нет общего способа реализации разделов - это новый доступ к данным и таблицы для каждого нового раздела.
НО, новые требования говорят о том, что пользователь должен иметь возможность проектировать свои собственные разделы. Чтобы избежать динамического манипулирования таблицами базы данных, мы хотели бы перейти на схему более высокого порядка, которая может выражать эти разделы в данных.
Если бы данные были просто парами ключ-значение однозначных полей, это можно было бы реализовать с помощью таблицы Sections и таблицы SectionFields. Но из-за возможности вложения через многозначные поля и поля сложного типа, я считаю, что мы должны подходить к этому как к элементарной системе типов. Я не думаю, что это нуждается в наследовании.
Вместо того, чтобы заново изобретать это, я предполагаю, что работа была проделана в схемах для эффективных систем типов, хранящихся в базе данных. Есть мысли / рекомендации?
Спасибо.