Во время работы над проектом, в котором будет храниться целая куча (совершенно разных) форм, я столкнулся с проблемой проектирования, заключающейся в том, как хранить значения при сохранении пригодности базы данных.
Краткое описание: каждый «документ» содержит различное количество вопросов (хотя и постоянное количество для каждого типа документа) и соответствующие ответы.
Наиболее полезный подход, который я предложил, заключается в следующем: здесь я сгруппировал документы по типу, который определяет, какие вопросы принадлежат документу, а взамен содержит ответы на соответствующие вопросы.
+---------------+ 1 n +-----------+
| DocumentType |----------| Questions |
+---------------+ Has many +-----------+
|1 1|
|n Is of type n| Belongs to
+---------------+ 1 n +-----------+
| DocumentEntry |----------| Answers |
+---------------+ Has many +-----------+
Недостатком здесь является то, что запросы при извлечении документов, имеющих вопрос A с ответом B, становятся довольно сложными и, вероятно, довольно медленными, когда база данных увеличивается, что быстро будет.
Мне интересно, не наткнулся ли я на оптимальный подход к хранению данных или есть какое-то изящное решение, которое я мог бы пропустить.