Скажем, у меня есть два типа вопросов: множественный выбор и диапазон. Вопрос диапазона позволяет пользователям ответить, указав диапазон значений в своем ответе (например, 1-10 или 2-4).Дизайн базы данных для нескольких подобных типов?
Я унаследовал базу данных, где ответы на эти типы вопросов сохраняются в той же таблице, которая структурирована таким образом:
Answers
-------
Id
QuestionId
choice
range_from
range_to
Это приводит данные, как показано ниже:
1 1 null 1 10
2 1 null 2 4
3 2 Pants null null
4 2 Hat null null
ли это иметь смысл включать столбцы из каждого типа ответа в таблице ответов? Или они должны быть разбиты на отдельные таблицы?
Это очень небольшая версия моей реальной базы данных. В действительности существует около 8 типов вопросов, поэтому при каждом ответе имеется несколько столбцов, которые остаются неиспользованными.
Возможный дубликат [Методы для наследования базы данных?] (Http://stackoverflow.com/questions/386652/techniques-for-database-inheritance) – mbeckish
Имо у вас должна быть одна основная таблица, в которой говорится, какой вопрос это , тогда сам вопрос будет храниться в таблице, которая имеет только поля, в которых она нуждается. – Patashu