Медведь
Не думаю что это могут вздрючить
А самому билеты зачем придумывать? Они же стандартные. Да и картинки перерисовывать
изврат какойто.
Цитата (Reh @ 29.12.2015 - 22:26) |
1 вопросы id, name 2 билеты id, name, pic 3 тесты id_билет, id_вопрос 4 ответы id_билет, id_вопрос |
В каждом билете по 20 вопросов, всего 40 билетов значит:
1 - Билеты (Эту таблицу можно не делать, т.к. исходное значение не изменится)
id номер билета| описание билета
2 - Вопросы
id | id номер билета | вопрос
3 - Варианты ответов
id | id номер билета | id номер вопроса | правильность ответа (0, 1)
_____________
Принимаю заказы, писать в ЛС
Valick
29.12.2015 - 22:50
Цитата (Valick @ 29.12.2015 - 22:50) |
Медведь, перемудрил. |
А как надо?
Вопросы и варианты ответов в одну таблицу не надо засовывать, а первую можно не делать.
_____________
Принимаю заказы, писать в ЛС
AllesKlar
29.12.2015 - 22:53
Цитата (Reh @ 29.12.2015 - 20:26) |
А чем мне этот топик должен помочь? Какое отношение он имеет к оргинизации моих таблиц? |
Не связывайся. Он уже 12 часов ни с кем не срался, у него ломка. Вот и взывает кого-либо на бой.
Раскладывай по сущностям, потом делай связи.
Какие у нас есть сущности?
Есть билеты, в билетах есть вопросы, в вопросах есть ответы.
Я не понял, что такое тест? Есть 40 билетов, в каждом по 20 вопросов.
Или ты результаты тестирования хочешь хранить в базе?
Значит как минимум:
- таблица билетов
- таблица вопросов
- таблица ответов
Картинки - это контент. Если ты хочешь сделать независимую от приложения базу, то храни картинки в базе.
Если ты адепт того, что под страхом вечного расстрела, картинки в базе хранить нельзя, то ссылки на них в вопросах, а физические файлы картинок на сервере.
Реши, что с картинками, двинем дальше.
_____________
[продано копирайтерам]
Значит как минимум:
- таблица билетов
- таблица вопросов
- таблица ответов
Мой вариант
![cool.gif](http://phpforum.su/html/emoticons/cool.gif)
Подойдйт?
_____________
Принимаю заказы, писать в ЛС
Valick
29.12.2015 - 22:56
тема была на 15 страниц, не пойму не в коня корм чтоль...
CREATE TABLE IF NOT EXISTS `question` (
`q_id` int(11) NOT NULL AUTO_INCREMENT,
`q_quest` varchar(255) NOT NULL,
PRIMARY KEY (`q_id`)
)
CREATE TABLE IF NOT EXISTS `answer` (
`a_id` int(12) NOT NULL AUTO_INCREMENT,
`q_id` int(11) NOT NULL,
`a_answer` varchar(255) NOT NULL,
`a_correct` int(1) NOT NULL,
PRIMARY KEY (`a_id`),
KEY `q_id` (`q_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
Здесь нет смысла делать отношение многие ко многим (вообще нет смысла это делать в тестах) по отношению вопроса к ответам, а вот один и тот же вопрос может содержаться в нескольких билетах.
поэтому "билет - вопрос" это отношение многие к многим
по хорошему это + еще две таблицы, но у нас номер билета это целое число (что само по себе практически id) поэтому достаточно таблицы связи
nomer | id_q (примари кей на оба поля, ну или отдельный id)
_____________
Стимулятор ~yoomoney - 41001303250491
AllesKlar
29.12.2015 - 22:57
Цитата (Медведь @ 29.12.2015 - 20:47) |
3 - Варианты ответов id | id номер билета | id номер вопроса | правильность ответа (0, 1) |
id номер билета - не нужно.
Цитата (Valick @ 29.12.2015 - 20:56) |
CREATE TABLE IF NOT EXISTS `question` ( `q_id` int(11) NOT NULL AUTO_INCREMENT, `q_quest` varchar(255) NOT NULL, PRIMARY KEY (`q_id`) ) CREATE TABLE IF NOT EXISTS `answer` ( `a_id` int(12) NOT NULL AUTO_INCREMENT, `q_id` int(11) NOT NULL, `a_answer` varchar(255) NOT NULL, `a_correct` int(1) NOT NULL, PRIMARY KEY (`a_id`), KEY `q_id` (`q_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ; |
Valick
Как выбрать вопросы для билета №15 ?
_____________
[продано копирайтерам]
Цитата (AllesKlar @ 29.12.2015 - 22:57) |
Цитата (Медведь @ 29.12.2015 - 20:47) | 3 - Варианты ответов id | id номер билета | id номер вопроса | правильность ответа (0, 1) |
id номер билета - не нужно.
|
А это да
![wink.gif](http://phpforum.su/html/emoticons/wink.gif)
Под машиной весь день пролежал ) Бензина нанюхался
_____________
Принимаю заказы, писать в ЛС
Valick
29.12.2015 - 23:01
Цитата (AllesKlar @ 29.12.2015 - 21:57) |
Как выбрать вопросы для билета №15 ? |
Цитата |
Реши, что с картинками, двинем дальше. |
Картинки на сервере, урл в базе
Цитата (Reh @ 29.12.2015 - 23:03) |
Цитата | Реши, что с картинками, двинем дальше. |
Картинки на сервере, урл в базе
|
По моему проще в вопросах, в этой же таблице ставить ссылку на изображение
Либо в тексте вопроса, либо отдельным полем.
_____________
Принимаю заказы, писать в ЛС
AllesKlar
29.12.2015 - 23:14
Цитата (Reh @ 29.12.2015 - 21:03) |
Картинки на сервере, урл в базе |
Тогда путь к картинке - это обычная часть контента вопроса.
Как вариант, можно плейсхолдеры залепить.
"Эта разметка обозначает: {img008}"
а уже в скрипте, ловить {img008} и заменять на путь к img_008.jpg
Но, вот например тут я смотрю
http://www.pdd24.com/pdd-onlainТам для каждого вопроса есть картинка. И для каждого только одна. Если вопрос без картинки, то выводится картинка с текстом "Вопрос без картинки"
Тоже вариант. Тогда в таблице вопросов будет поле img, где будет хранится имя графического файла. Если вопрос без картинки, то в поле img пишется имя прозрачного однопиксельного gif
_____________
[продано копирайтерам]
Цитата |
Я не понял, что такое тест? |
Цитата |
Или ты результаты тестирования хочешь хранить в базе? |
моя логика была такой
1 список всех вопросов
2 список вариантов ответов
3 тест - к какому вопросу какие варианты ответов
4 ответы - у какого вопроса каой правильный ответ
результаты не буду хранить
Цитата |
Если вопрос без картинки, то в поле img пишется имя прозрачного однопиксельного gif |
А зачем вообще что то выводить если нет картинки?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.