vagrand
18.01.2014 - 13:36
Valick
Цитата |
как вариант можно перенести correct_answer во вторую таблицу, тогда третья таблица будет не нужна, и кстати что такое title? |
Если один ответ может использоваться только для одного вопроса то да, но бывают случаи когда он может подходить для разных. ну title вроде как заголовок. Не знаю нужен он или нет, написал с потолка. Что касается переноса correct_answer в таблицу с ответами то опять же для случая ТС нужен будет JOIN.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Valick
18.01.2014 - 13:43
Цитата |
Что касается переноса correct_answer в таблицу с ответами то опять же для случая ТС нужен будет JOIN |
ну для отправки вопроса и ответов клиенту он будет нужен в любом случае, и эти же данные сожно сохранить в сессии, что позволит проверять от вет без обращения к БД
_____________
Стимулятор ~yoomoney - 41001303250491
vagrand
18.01.2014 - 14:07
Valick
Цитата |
ну для отправки вопроса и ответов клиенту он будет нужен в любом случае |
Не факт что нужен будет, вполне возможно выбирать ответы отдельным запросом. Все зависит от архитектуры системы.
Цитата |
и эти же данные сожно сохранить в сессии, что позволит проверять от вет без обращения к БД |
У ТС-а был вопрос не про то как закешировать выборку, а про то как правильно составить запрос. В этом ключе я и отвечал.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Valick
18.01.2014 - 14:27
Цитата |
Не факт что нужен будет, вполне возможно выбирать ответы отдельным запросом. Все зависит от архитектуры системы. |
А в случае с переносом правильного ответа во вторую таблицу вас кто Воландеморт заставляет JOIN юзать?

Те же два запроса и дело шляпа))
Хотя лично я бы юзал JOIN, без каких либо дополнительных пинков мне под зад
_____________
Стимулятор ~yoomoney - 41001303250491
vagrand
18.01.2014 - 14:45
Valick
Цитата |
А в случае с переносом правильного ответа во вторую таблицу вас кто Воландеморт заставляет JOIN юзать? |
ТС написал что имеет массив вопросов и ответов и нужно вывести одним запросом общее количество правильных из них. Приведите мне пример sql запроса если id правильного ответа будет во второй таблице.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Valick
18.01.2014 - 15:15
vagrand, а в чем проблема то? во второй таблице просто обязан быть id вопроса, я у вас специально спросил что таое title потому как предположил, что именно по этому полю связаны таблицы.
Поэтому для выборки количества правильных ответов работаем исключительно со второй таблицей и даже никакие джоины не нужны. Этот вариант слегка денормализован, в отличии от вашего с тремя таблицами, но я же и написал "как вариант"
Если вам не нравится Воландеморт, так и скажите, но я то тут при чём?
_____________
Стимулятор ~yoomoney - 41001303250491
vagrand
18.01.2014 - 15:33
Valick
Да никаких проблем нет. Я написал структуру таблиц для своего варианта со связью многие-ко-многим и в этом варианте поле с правильным ответом должно быть именно в таблице questions. И никакого "Воландеморта" тут нет.
Ваш способ тоже правильный в случае, если связь вопросы -> ответы идет один ко многим. Вот и все.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
SoMeOnE
19.01.2014 - 02:44
Спасибо за ответы. Все понятно.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.