# blackvj (28.01.2015 / 22:54)
Jane, на многих сайтах есть такая сортировка по жанрам, не думаю что все они делали такую струтуру, тот же КиноПоиск. В нём тоже заранее вбиваются тэги.
там тот же поиск, что у нас был первоначально, или тот, что ты хочешь себе щас сделать?
У них он совмещён также через 2 таблицы.
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 млн записей в базе форума, ох как это нецелесообразно.
переделав структуру, ты выиграть по скорости хоть не много все равно должен, так как данных будет на треть меньше, при том же объеме, то есть если например база весит 500м, а станет 300м, с ней будет уже удобнее работать мускулу
просто я сталкивался с подобным, тоже вначале не продумал до конца структуру, было у меня 20к записей в базе, из них некоторые дублировались, так как филиалы или офисы, фирма одна, тел и адрес например другие
офисы я вынес в другую таблицу, и о итоге стало 14к записей в первой таблице, поиск по трем таблицами тоже нормально работал
я не спорю, что на данной задаче быстрее будет работать с другой структурой,
но если все же с этой что-то там получилось, то и хорошо…