[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Простой тест на PHP
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
Valick
Kusss, нет. Всего две таблицы.
уф...
таблица question
q_id - идентификатор строки
q_quest - вопрос

таблица answer
a_id - идентификатор строки
q_id - внешний ключ из таблицы question
a_answer - ответ на вопрос
a_correct - правильный (1) или неправильный (0) ответ

_____________
Стимулятор ~yoomoney - 41001303250491
maruo
Цитата (Valick @ 15.11.2015 - 23:19)
maruo, таблица arbuzmaster соответствует 1нф. Но не соответсвует 2 нф.

какая именно? где not_ans 1,1,2,23,4,5,6>
arbuzmaster
Что то я не пойму, если Вы уже пошли по пути, что в таблице 2 значения id и valid_a , тогда и создайте такую же для неправильных ответов id и not_valid и будете из неё выводить три варианта за исключением правильного.

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
maruo
Цитата (Valick @ 15.11.2015 - 23:25)
Kusss, нет. Всего две таблицы.
уф...
таблица question
q_id - идентификатор строки
q_quest - вопрос

таблица answer
a_id - идентификатор строки
q_id - внешний ключ из таблицы question
a_answer - ответ на вопрос
a_correct - правильный (1) или неправильный (0) ответ

А где здесь варианты ответов*)
Valick
Большой секрет создания архитектуры БД
одна сущность - одна таблица
если отношение между сущностями многие ко многим то + еще одна таблица связи.
в нашем случае две сущности это вопросы и ответы
2 таблицы
отношение один ко многим (один вопрос - много ответов)
следовательно таблица связи не нужна

_____________
Стимулятор ~yoomoney - 41001303250491
arbuzmaster
А по сути Valick прав, достаточно и 2-х таблиц. Ведь из правильных ответов на все вопросы можно составить список неправильных.

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Valick
Цитата (maruo @ 15.11.2015 - 22:36)
А где здесь варианты ответов

таблица answer
a_id | q_id | a_answer | a_correct
1 | 1 | 1 ответ на 1 вопрос | 0
2 | 1 | 2 ответ на 1 вопрос | 1
3 | 2 | 1 ответ на 2 вопрос | 1
4 | 1 | 3 ответ на 1 вопрос | 1
5 | 1 | 4 ответ на 1 вопрос | 0
6 | 2 | 2 ответ на 2 вопрос | 0
7 | 1 | 5 ответ на 1 вопрос | 0

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата (arbuzmaster @ 15.11.2015 - 22:39)
Ведь из правильных ответов на все вопросы можно составить список неправильных

Технически можно, но не нужно. Иначе очень глупо будут звучать ответы на вопросы. Из разряда "потому что гладиолус".
Если уж очень хочется, то можно изменить отношение на многие ко многим и добавить таблицу связи, тогда один и тот же ответ можно использовать для разных вопросов, но корректность ответа надо будет тоже перенести в эту таблицу связи.
Но мы ведь пишем простой тест smile.gif не надо усложнять себе жизнь раньше времени.

Забегая вперёд скажу, что рандомные варианты ответов больше вредят тесту чем усложняют его. Проходя тест повторно можно исключить некоторые варианты ответов, правильный вариант ответа будет присутствовать всегда. Если конечно сделать рандом еще и из правильных ответов, то в принципе будет лучше. Но это опять не попадает под определение простого теста. Лучше сделать одинаковое количество ответов на определённый вопрос (хотя на разные вопросы может быть разное количество ответов) например на первый вопрос 4 ответа, на второй вопрос 5 ответов. А вот выводить их можно в произвольном рандомном порядке, это будет лучшим вариантом, но это в будущем. Начнём с самого простого.

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Завтра создадим таблицы в БД. Набьём вопросов и ответов и сделаем html форму.

_____________
Стимулятор ~yoomoney - 41001303250491
arbuzmaster
Как я понял то в результате мы получим следующее?
Вопросы:
q_id: 1 | question: Какого цвета крокодил?
Ответы:
id: 1 | q_id: 1 | a_answer: Зеленый | a_correct: 1
id: 2 | q_id: 1 | a_answer: Желтый | a_correct: 0
id: 3 | q_id: 1 | a_answer: Оранжевый | a_correct: 0
id: 4 | q_id: 1 | a_answer: Синий | a_correct: 0

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Valick
arbuzmaster, да, именно так. Вариантов ответов может быть хоть 100000000 и правильных из них от 1 до 100000000. Создавая БД мы изначально не ограничиваем себя в этом.
Сегодня захотели 5 вариантов ответов на каждый вопрос - пожалуйста. Завтра захотели 6 вариантов - пожалуйста. Послезавтра захотели на каждый вопрос произвольное количество ответов да не вопрос. Мы не меняем ни код ни БД, мы просто либо добавляем либо убираем варианты в БД. Причём структура БД тоже не меняется. Мы оперируем только данными(!)

_____________
Стимулятор ~yoomoney - 41001303250491
arbuzmaster
Valick спасибо возьму на заметку!!

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
maruo
ой мне бы щас разобраться что вы тут написали)
Valick
maruo, я вам дал структуру бд и показал как будут варианты ответов располагаться. Разбирайтесь, у вас вся ночь впереди user posted image

_____________
Стимулятор ~yoomoney - 41001303250491
maruo
ТОесть мы создаем первую таблу.
queston_id || question
1 ||Сколько будет 2+2?

2я таблица у нас будет.
answer_id || question_id||more_answer||а тут 0 или 1 в качестве проверки ?
1 || 1 || Два || 0
2 || 1 ||три ||0
3 || 1 || Четыре ||1
4 || 1 ||Десять ||0

Вроде бы понял наверно?

ммм у меня проблема с внешними ключами, точнее я о них узнал только сегодня ,командная строка само собой, но при создании бд она меня накаливает.
А вот как в phpmyadmin это сделать будет идентично?
Надо будет question_id соединить с id_qiestion с первой таблицы?
что мне это даст?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.