Я создаю приложение, в котором пользователь может создать любое количество веб-форм. Формы будут охватывать широкий круг тем и могут содержать все виды полей, разделенных на любое количество подформ.Допустимый подход к динамическому созданию таблиц SQL?
Для того, чтобы это не стало проблемой нормализации, мое приложение динамически генерирует таблицы для подформ. Конечная архитектура может выглядеть следующим образом (упрощенный):
/* Статическая таблица - иерархический уровень 1 */
[ProjectTable]
project_id (KEY, AUTO INC), project_name
/* Статический таблица - иерархический уровень 2 */
[RegistrationTable]
project_id (Parent ID), registration_id (KEY, AUTO INC), REGISTRATION_DATE
/* Динамическая таблица - иерархический уровень 3 */
[RegistrationSubTable_xxxxxxxx]
registration_id (Parent ID), Firstname, фамилия, электронная почта
/* Динамическая таблица - иерархический уровень 3 */
[TRegistrationSubTable_yyyyyyyy]
registration_id (Parent ID), BOOK_TITLE
(Надеюсь, это понятно :)
Меня беспокоит то, что число динамических таблиц будет расти бесконечно, достигнув десятков тысяч за несколько лет. Будет ли это проблемой для SQL (в настоящее время MS SQL)?
Есть ли какие-либо оговорки, о которых я не думал?
Инстинкт кишки говорит, что это невероятно плохая идея. Почему первичный ключ для ваших таблиц не может быть расширен, чтобы обслуживать отдельные формы, оставляя при этом несколько таблиц? –
Я должен согласиться с @AdrianWragg –
Взгляните на [этот ответ] (http://stackoverflow.com/a/5858666/1114171) –