Просто для ясности: когда я говорю Agile, я не имею в виду Agile-процесс разработки. Я имею в виду развивающуюся модель данных, в которой можно добавлять новые атрибуты объектов и управлять ими.
Я пытаюсь решить проблему веб-приложения, которая позволяет пользователям создавать новые формы контента для ввода данных, которые можно развивать (возможно, с версиями) путем добавления (или изменения, возможно,) дополнительных полей. Это само по себе довольно прямолинейно. Форма контента каждого пользователя будет иметь динамически создаваемое представление и триггер для обработки чтения/записи, а базовые таблицы будут динамически создаваться при внесении изменений в структуру формы контента. Ввод данных будет просто использовать триггеры для записи, а представления будут использоваться для чтения.
Я ищу совета по поводу того, существует ли существующая техника моделирования базы данных или тип базы данных, которые помогли бы решить такую задачу. К приложению будут предъявляться дополнительные требования в отношении отслеживания изменений, просмотра истории, миграции между совершенно разными формами контента и т. д. Вероятно, сверху также будет добавлен некоторый сложный просмотр веб-приложений на основе авторизации.
Я внимательно изучил якорное моделирование, и хотя в нем есть аспекты двухвременного моделирования, а его 6NF позволяет гибко разработки схемы, неясно, как перейти от хорошо разработанной модели к сценарию SQL и к веб-приложению, которое может развивать данные содержимого. Возможно, я смотрю на это неправильно, но я бы не хотел изменять какие-либо триггеры или представления в модели Anchor, и я не думаю, что смогу создать с ней модель, которую можно расширять по требованию. Инструменты моделирования потребуются для безопасного внесения изменений.
Мне все еще нужно изучить некоторые из доступных баз данных NoSQL. MongoDB выглядит очень интересно благодаря своему документоориентированному хранилищу.
Любые советы или опыт работы с этими инструментами или с описанной задачей моделирования данных будут очень кстати! Спасибо за любые ответы заранее.