Я работаю над так называемой системой наблюдения за факторами риска (BRFSS), системой веб-запросов, в которой каждый год заполняются вопросники.Разработка базы данных системы опроса
Мне было трудно найти подходящий дизайн базы данных. Вот в чем проблема: каждый вопросник содержит около 80 вопросов с демографической информацией, например. возраст, образование и т. д., а также вопросы опроса, например. курение, здоровье и т. д. Каждый год некоторые вопросы меняются, некоторые - нет. Источник данных - это файл Excel с 80 + столбцами. Система должна поддерживать такие запросы, как:
SELECT [question var], [demo var], count(*)
FROM survey
WHERE age in (...) AND educ in (...) [etc]
GROUP BY <question var>
Данные только для чтения, т.е. никогда не меняются после импорта. Так что его не нужно слишком ужесточать. Интуитивно, таблица, подобная таблице, сделает хорошую работу. скорости и пространства. Это становится проблемой, однако, потому что вопросы будут меняться, тогда мы не сможем сохранить все данные в этой таблице, что необходимо из-за кросс-летних запросов.
Я попытался нормализовать ответы на три таблицы: вопросы, ответы и response_values, которые могут поддерживать варианты вопросов. Но тогда таблица ответов охватывает более 98 * 14268 = 1 398 264 строки в течение одного года! Это действительно огромно. Запрос медленный, как сумасшедший!
Как мне создать базу данных? Любая помощь приветствуется! Заранее спасибо!
пс. Я использую Python + Django + Sqlite.
awesome ресурс, спасибо – Jason
Спасибо! Я не знаю этого сайта. Но я сомневаюсь, что это будет включать такой конкретный случай. В любом случае, я посмотрю. – peng
Ну, есть вопросник - сложный ответ на него. Но он использует тот же дизайн, что и второй, который я разместил. Это вызовет огромный стол и вялый запрос. Более того, я предпочитаю более легкий вес, чем тот, который задает проблему. – peng