Можно ли добавить базу данных на сайт динамических данных (ASP.NET) во время выполнения? - PullRequest
3 голосов
/ 27 июля 2011

Я внедряю движок управления веб-процессами и сталкиваюсь с некоторыми проблемами:

Модель процесса имеет разные типы объектов с атрибутами, например,
Модель "Подбор персонала":
Сотрудник (имя, день рождения, отдел)
Заявка (Дата, ...)
Заявитель (имя, день рождения, ...)

Каждая модель имеет свою собственную базу данных, и каждый экземпляр типа объекта хранится в отдельной таблице в этой базе данных. (да, это довольно денормализовано ...) Во время выполнения возможно добавление новых моделей, что приводит к появлению дополнительных баз данных с различными схемами для обработки.

Динамические данные в ASP.NET работают с уже существующими схемами БД. Можно ли добавить эти новые базы данных (работает) и создать соответствующие классы LINQ2SQL во время выполнения?

Я мог бы (повторно) нормализовать таблицы и сохранить все модели и данные в одной базе данных (чтобы я знал схему во время сборки), но поскольку это многопользовательская система с огромным количеством экземпляры в каждой таблице просто слишком сложны (объединения и т. д.)…

Есть идеи? Заранее спасибо

Stefan

1 Ответ

0 голосов
/ 12 сентября 2011

Если у вас есть язык определения динамических данных и вам нужно время от времени добавлять новые объекты, один из подходов к БД заключается в использовании EAV-модели , где исходная таблица БД (например, клиенты) привязана к таблице атрибутов ( содержит динамические атрибуты клиента), а другая таблица имеет ключевые значения для каждого атрибута.

Используя этот метод, вы могли бы связать ваше приложение DD с моделью EAV, а затем добавить объект и атрибуты по желанию, без каких-либо изменений в языке определения данных в БД.

...