У меня есть приложение, которое позволяет пользователям создавать различные формы (опросы), а затем заполнять их. (так что это заменитель бумаги).
Вот текущая модель, которую я использую в приложении:
Table 1)
+-------------------------+
| SURVEYS TABLE |
+----+------+-------------+
| ID | name | description |
+----+------+-------------+
Table 2)
+-----------------------------------+
| $[name_of_the_survey] |
+----+-------+------+-------+-------+
| ID | field | type | value | items |
+----+-------+------+-------+-------+
Table 3)
+--------------------------------------+
| $[name_of_the_survey] _records |
+----+---------------------------------+
| ID | columns specific to each survey |
+----+---------------------------------+
, так что в основном, когда пользователь создает опрос, программы вставляют запись в таблицу опросов, а затем создают 2 таблицы:
таблица (2) для полей формы table (3) для записей, которые будут храниться, в которых столбцы соответствуют строкам таблицы (2).
Это работает, но имеет некоторые ограничения. Например, когда вы хотите добавить поле в таблицу (2), оно должно прочитать содержимое таблицы (3), сохранить его в виртуальной таблице, отбросить предыдущую таблицу (3) и создать новую. Это может быть проблемой производительности, если в таблице (3) много записей.
Итак, мой вопрос: есть ли лучший дизайн базы данных?