Получение документа по url?

  • Автор темы Автор темы Tartyga
  • Дата начала Дата начала
Ну с чего они разные-то? Там разные тумбочки что ли? Информация на странице одинаковая, разве кроме хлебных крошек, но для гуглов это не важно.
 
Ну с чего они разные-то? Там разные тумбочки что ли? Информация на странице одинаковая, разве кроме хлебных крошек, но для гуглов это не важно.
Оооо, блин. Да, да, разные страницы.
site.ru/o_kompanii/raboty/tumbochki.html - Смотрите какие мы офигенные тумбочки делаем, такие вот красивые и удобные, вот вам несколько фоточек и всякая подобная хрень.
site.ru/katalog/mebel/tumbochki.html - А здесь список того дерьма, что у нас на складе, выбирайте заказывайте и т.д. и т.п.

Я не из головы придумал подобную ситуацию, реально сталкивался с подобным, тем более если сайт наполняет сам заказчик, ну, там девочка какая нибудь!!
 
И ради этого весь сыр-бор? Все еще запущенее оказалось. Надо же придумать себе проблему на ровном месте!
Ты просил оптимальное решение? Его у меня есть:

site.ru/o_kompanii/raboty/tumbochki-delaem.html
site.ru/katalog/mebel/tumbochki-prodaem.html

Дешево, оптимально, и не надо гнуть фреймворк.
 
И ради этого весь сыр-бор? Все еще запущенее оказалось.
Так не я же раздул, вопрос был простой и по большей степени теоритический!))
Надо же придумать себе проблему на ровном месте!
Я уже писал, что не я придумал проблему. Пример я привел немного примитивный, но такое случается в реальной работе, особенно во всяких каталогах с товарами.
Дешево, оптимально, и не надо гнуть фреймворк.
Это выглядит примерно так:
- Ребята, мне нужен был стеклянный столик, а вы мне сделали из пластика? У меня уже есть такой!
- Не, ну а че, тоже ведь прозрачный, просто нам не кайф было стекло сверлить, чтобы ножки прикрутить!
 
Я уже писал, что не я придумал проблему. Пример я привел немного примитивный, но такое случается в реальной работе, особенно во всяких каталогах с товарами.
Опять за рыбу деньги! Для "всяких каталогов товаров" действительно все, что написано тебе на первой странице. Твой пример с тумбочками никакого отношения к каталогам не имеет и решается по-другому.
 
Tartyga
В общем, если ты создаешь страницы site.ru/o_kompanii/raboty/tumbochki.html и site.ru/katalog/mebel/tumbochki.html, то не надо потом менять их адреса. А если меняешь, то ставь 301 редирект. Это тебе пытались объяснить.
Так что храни их адреса в виде raboty/tumbochki и katalog/mebel/tumbochki и не парься. Пересобирать тоже лучше не надо. Менять их адреса в последствии вряд-ли кому-то придет в голову.

Надо же, то есть, мое стремление сделать гибких функционал админки и чтобы сайт не загнулся на 100к запросах - это узкое мышление?!)
100к запросов к админке? Это ты на несколько порядков перегибаешь. Даже если имеется в виду количество запросов в час.
 
В общем, если ты создаешь страницы site.ru/o_kompanii/raboty/tumbochki.html и site.ru/katalog/mebel/tumbochki.html, то не надо потом менять их адреса. А если меняешь, то ставь 301 редирект.
Спасибо, я в курсе!
Это тебе пытались объяснить.
А я не про это спрашивал!
Так что храни их адреса в виде raboty/tumbochki и katalog/mebel/tumbochki и не парься.
Как думаете, что быстрее будет:
PHP:
SELECT * FROM pages WHERE alias='katalog/mebel/tumbochki' или SELECT * FROM pages WHERE alias='tumbochki'
Пересобирать тоже лучше не надо. Менять их адреса в последствии вряд-ли кому-то придет в голову.
Придет, не придет, просто хочу чтобы такая возможность была!
100к запросов к админке?
нет, речь идет о фронтенде!
 
Спасибо, я в курсе!
А я не про это спрашивал!
Придет, не придет, просто хочу чтобы такая возможность была!
Сам себе противоречишь. Определись уже, чего хочешь?
Как думаете, что быстрее будет:
PHP:
SELECT * FROM pages WHERE alias='katalog/mebel/tumbochki' или SELECT * FROM pages WHERE alias='tumbochki'
В твоей ситуации вообще пофигу.
нет, речь идет о фронтенде!
Боишься, что из-за SQL-запроса лягут JavaScript или CSS?
 
Tartyga
а что будет если у тебя тумбочки в разных отделах, например офисная бебель, спальня, детская. там везде тумбочки, но разные. второй вариант имеет проблему коллизий.
 
AmdY
а что будет если у тебя тумбочки в разных отделах, например офисная бебель, спальня, детская. там везде тумбочки, но разные. второй вариант имеет проблему коллизий.
Во, первый человек по теме спросил!)))) Я выше писал, что во втором варианте если более одного результата, делать исключение по родителю! Это и была суть вопроса, что лучше выбрать, так как у каждого варианта есть свои плюсы и минусы.
Повторю:
1. хранить весь путь к документу, если в случае манагеру взбредет в голову поменять псевдоним документа, то тогда придется менять урлы у все дочерних документов! Я понимаю, что это не стоит делать (как многие писали выше), но вдруг такая ситуация, что контент-менеджер добавил раздел, потом в него 100500 страниц (еще ничего поисковиками не проиндексировалось) и тут смотрит, псевдоним у раздела ему не нравится.
2. Второй вариант более гибкий, на мой взгляд, поиск документа быстрее, меньше хлама в базе, зато есть опасность получить много итераций. Но все это решается кешированием, поэтому я и выбрал этот вариант.
 
Tartyga
если у тебя дерево, то можно просто в выборку добавлять
SELECT * FROM pages WHERE alias='tumbochki' AND parent_id = ?
 
AmdY
если у тебя дерево, то можно просто в выборку добавлять
SELECT * FROM pages WHERE alias='tumbochki' AND parent_id = ?
Точнее даже вот так:
PHP:
SELECT t1.* FROM pages t1, pages t2 WHERE t1.alias='tumbochki' AND t2.alias='detskaya' AND t2.id=t1.parent
 
  • Like
Реакции: AmdY
Точнее даже вот так:
PHP:
SELECT t1.* FROM pages t1, pages t2 WHERE t1.alias='tumbochki' AND t2.alias='detskaya' AND t2.id=t1.parent

А можно ли при такой схеме (parent - id) выбрать все товары, допустим, из группы Детская: тумбочки, кроватки, коврики?..

По наименованиям: я при таких коллизиях обычно использую что-то вроде tumbochki_prodaem, tumbochki_izgotovim. Изготовление или продажа - это существенно для покупателя и ПС, поэтому всегда стараюсь указывать это в title (и попутно в url, если уж делаем транслитом) максимально подробно.
 
stopkran
Ну, во-первых AmdY правильно сказал, лучше использовать left join, я привел упрощенный статичный пример.
А можно ли при такой схеме (parent - id) выбрать все товары, допустим, из группы Детская: тумбочки, кроватки, коврики?..
Не совсем понял вопроса, что значит "выбирать все товары"? Если для вывода списка товаров на странице, то это немного другое!
Опять же, смотря как устроена админка. У меня есть name(чисто для вывода в дереве ресурсов), title(заголовок страницы <H1>) и отдельно meta - title,description,keywords и прочее.
 
Не совсем понял вопроса, что значит "выбирать все товары"? Если для вывода списка товаров на странице, то это немного другое!
Да, для вывода товаров на странице (можно ли использовать в этом случае дерево только на основе id-parent). Ну, если не входит в эту тему, тогда ладно.
 
Так лучше:
PHP:
$result = mysql_query("SELECT * FROM `pages` WHERE `alias`='razdel/category/my_page.html'");

И добавить еще alias_short (или node_name), короче совместить оба варианта.
 
Тугай
И добавить еще alias_short (или node_name), короче совместить оба варианта.
А смысл? Смотри, например мы меняем "razdel/category/my_page.html" на "rasdel/category/my_page.html" и придется менять путь уже во всех дочерних, да знаю, переименовывать это зло, но все же!))
Вообще случаи с повторением псевдонимов вероятно будут редкими, поэтому поиск по короткому алиасу вполне оправдан, просто подстраховаться на всякий случай!
 
Сверху