|
|
|
| Добрый день!
Перейду сразу к делу:
В колледже задали задание, разработать "Конструктор тестов".
Вообщем думал-думал и решил что схема БД должа выглядеть след. образом:
---------------------------------------
Например, таблица "ТЕМА":
ID | NameTema
1 | Программирование
---------------------------------------
Затем таблица "Vopros"
ID | Tema | Vopros
1 | 1 | "Что такое ООП?"
2 | 1 | "Что такое полиморфизм?"
Где значение в поле Tema.Vopros = NameTema.Tema
-------------------------------------------
Таблица "Otvet"
ID | Vopros | Otvet | Pravilno/Nepravilno
1 | 1 | ответ 1 | 1
2 | 1 | ответ 2 | 0
Где значение поле Vopros.Otvet = Vopros.Vopros
Так вот, составил запрос:
"SELECT DISTINCT Tema.ID, Tema.NameTema, Vopros.Tema, Vopros.Vopros FROM Tema, Vopros WHERE
|
Vopros.Tema = Tema.ID"
Выводит все вопросы, исключая дубли, с вопросами сообразил. А вот как составить таблицу для ответов:
т.е. Чтобы таблица принимала примерно след. вид:
Таблица "Otvet"
ID | Vopros | Otvet | Pravilno/Nepravilno
1 | 1 | ответ 1 | 1
2 | 1 | ответ 2 | 0
где значение 1 в поле Vopros принимала значение из таблицы Vopros, т.е. 1 - "Что такое ООП?"
2 - "Что такое полиморфизм?, т.е. по полю ID.Vopros. А таблица Vopros и поле Tema брала значение из таблицы "Tema".
Вообщем вот такой обширный вопрос у меня, надеюсь на вашу поддержку ..... | |
|
|
|
|
|
|
|
для: Boss
(22.10.2005 в 17:12)
| |
select otvet.id, vopros.vopros, otvet.otvet, otvet.pravilno/nepravilno from otvet, vopros where vopros.id=otvet.vopros
|
А тема здесь не нужна, насколько я понял.
если необходимо добавить и тему, то
select otvet.id, tema.nametema, vopros.vopros, otvet.otvet, otvet.pravilno/nepravilno from tema, otvet, vopros where vopros.id=otvet.vopros and vopros.tema=tema.id
|
| |
|
|
|
|
|
|
|
для: Boss
(22.10.2005 в 17:12)
| | Ох и запутанные у вас названия таблиц и полей. Попробуйте такой запрос
SELECT tema.nametema,
vopros.vopros AS Vopros,
otvet.otvet AS Otvet,
otvet.PN AS
FROM tema, vopros, otvet
WHERE tema.id = vopros.tema
AND Vopros.id = otvet.vopros
|
PN - это ваше поле Pravilno/Nepravilno
P.S. Лучше не называть имена полей со слешами, и не давать одинаковые имена полей и таблиц, взляните на запрос и вам станет ясно почему :-))) | |
|
|
|