|
|
|
| начал делать программу тестирования учеников...
в моей таблице есть вопросы и к каждому вопросу распределены уровни.
можно ли на sql запросе выбрать случайных 30 строк(в моем случае это вопросы) при том распределить их равномерно по уровню?
как можно режить эту задачу? | |
|
|
|
|
|
|
|
для: Shokan
(05.02.2007 в 17:19)
| | то есть чтобы сумма уровней в выборке была равна заданной? | |
|
|
|
|
|
|
|
для: Shokan
(05.02.2007 в 17:19)
| | Равномерность чем определяется? Какой критерий? | |
|
|
|
|
|
|
|
для: cheops
(06.02.2007 в 00:22)
| | Есть такие таблицы(для программы цеста учеников):
<b>
1 таблица(voprosy)
||id || vopros || tema_id || pod_tema_id||
x x x x
</b>
значение последних 2 полей хранится в отдельном таблице с соответствующими именами.
мне нужно сделать что бы выходило 30 случайных, не повторяющих вопроса. это я решил с помощю sql запроса
select * from voprosy where tema_id='$tema_id' order by rand() group by id limit 30
|
теперь надо что бы подтемы(pod_tema) в этих вопросах разделились по ровомерной процорции.
не знаю! можно сделать это с помощю sql запроса(так было на много проще).
или писать специально алгоритм. как можно решить эту проблему? | |
|
|
|
|
|
|
|
для: Shokan
(12.02.2007 в 09:31)
| | что такое "равномерная пропорция"? | |
|
|
|
|
|
|
|
для: Trianon
(12.02.2007 в 10:21)
| | Это значит на каждый вопрос разделялся ровная количество подтем. | |
|
|
|
|
|
|
|
для: Shokan
(14.02.2007 в 18:09)
| | Ума не приложу, как вопрос "Сколько будет 2+2" разделить на 20 подтем.
Или вы всё совсем неправильно формулируете, или вам нужно полностью пересмотреть Вашу БД.
Насколько я понял, вам нужно получить в тесте по определенной теме 10 вопросов по 10 подтемам?
Если так, то у вас будут таблицы:
topics(id_topic, name)
subtopics(id_subtopic, id_topic, name)
questions(id_question, id_subtopic, question)
Чтобы получить тест по теме с id_topic = 3 из 10 вопросов:
SELECT questions.*
FROM questions, subtopics
WHERE subtopics.id_topic = 3 AND
subtopics.id_subtopic = questions.id_subtopic
GROUP BY subtopics.id_subtopic
ORDER BY rand() LIMIT 10
|
| |
|
|
|