Помогите с mysql запросом

1.97K
.
Блиносвёрт ?
# blackvj (28.01.2015 / 22:54)
Jane, на многих сайтах есть такая сортировка по жанрам, не думаю что все они делали такую струтуру, тот же КиноПоиск. В нём тоже заранее вбиваются тэги.
там тот же поиск, что у нас был первоначально, или тот, что ты хочешь себе щас сделать?
.
У них он совмещён также через 2 таблицы.
.
Блиносвёрт ?
blackvj, просто ты такие заявления делаешь, что я нуб..
да, я два-три года назад была больше нубом, чем сейчас , но и щас я сомневаюсь, что какой-то другой алгоритм будет работать быстро (быстрее), это надо проверять,
а пример своей хорошей структуры ты говорить не хочешь, чтобы я хотя бы прикинула, потому что то, что мне приходит в голову, не особо быстрое
.
blackvj
Вобщем сделал жёсткий не профессиональный велосипед, кстати на КиноПоиске тоже без листинга результатов

$q1 = mysql_query("SELECT DISTINCT `tem_id` as `topics`, 
(select  CONVERT(GROUP_CONCAT(`tag_id`) USING cp1251) from `forum_temtags` where `tem_id` = `topics`) as `tags`
FROM `forum_temtags` LIMIT 100;");

while ($mass = mysql_fetch_assoc($q1)) {  
$zh = ',' . $mass['tags']. ','; 
if(preg_match("/,9,/i", $zh) && preg_match("/,26,/i", $zh))
echo '' . $mass['topics']. ' c жанрами ' . $zh. '<br/>';
}
.
Блиносвёрт ?
# blackvj (28.01.2015 / 23:02)
У них он совмещён также через 2 таблицы.
ну если у них расширеная задача, то ясное дело, что у них другая реализация, как видишь, этот вариант парит мозги , даже если ты его придумаешь, он будет долгий, проще написать новый скрипт и перекинуть данные..
один раз переформировать структуру, чем каждый раз это делать через мега запрос
.
Jane, Данный велосипед работает быстро так что мне и этого хватит.
.
Jane, Кстати на счёт Джоновского форума ты права, он тоже кривой.

К примеру можно было бы сделать в колонке с названием темы счётчик с количеством сообщений в данной теме и при добавлении нового смс +1 к нему.

А так чтобы подсчитать количество сообщений в теме нужно делать запрос, а если у тебя 2 млн записей в базе форума, ох как это нецелесообразно.
.
(\/)____o_O____(\/)
переделав структуру, ты выиграть по скорости хоть не много все равно должен, так как данных будет на треть меньше, при том же объеме, то есть если например база весит 500м, а станет 300м, с ней будет уже удобнее работать мускулу
.
(\/)____o_O____(\/)
просто я сталкивался с подобным, тоже вначале не продумал до конца структуру, было у меня 20к записей в базе, из них некоторые дублировались, так как филиалы или офисы, фирма одна, тел и адрес например другие
офисы я вынес в другую таблицу, и о итоге стало 14к записей в первой таблице, поиск по трем таблицами тоже нормально работал
.
Блиносвёрт ?
я не спорю, что на данной задаче быстрее будет работать с другой структурой,
но если все же с этой что-то там получилось, то и хорошо…
Всего: 82