Что лучше: 1 таблица на запись или 1 таблица со всеми записями, связанными с внешними ключами?

У меня есть приложение, которое позволяет пользователям создавать различные формы (опросы), а затем заполнять их. (так что это заменитель бумаги).

Вот текущая модель, которую я использую в приложении:

 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) много записей.

Итак, мой вопрос: есть ли лучший дизайн базы данных?

6
задан Tivie 23 November 2010 в 16:44
поделиться