Выберите и просмотрите категории и подкатегории, хранящиеся в отдельных таблицах - PullRequest
3 голосов
/ 19 января 2011

Я ищу решение для просмотра и просмотра категорий и подкатегорий и их записей (классифицированных объявлений), когда вы храните уровни категорий в отдельных таблицах. В прошлом я работал с моделью смежности, но сейчас мне нужно придерживаться этой настройки базы данных, и она для меня нова. Я использую php и mysql.

Сайт является классифицированным рекламным сайтом, структурированным по обычной схеме: у него есть основной список категорий на домашней странице, когда вы нажимаете одну из ссылок категории, отображаются только его подкатегории и объявления, принадлежащие этой категории, и т. Д. на каждом уровне.

Я немного запутался в следующих областях:

  1. Как вы строите ссылки на категории при просмотре категории для того, чтобы скрипт знал, из какой таблицы он должен выбирать категории, если я рассмотрю ниже структура MySQL? Нужно ли отдельно параметры на каждом уровне категории я имею доступ например, например: "mysite.com/?cat2=4", когда Доступ к категории "4" в cat2 таблица и "mysite.com/?cat3=9", когда доступ к категории "9" в таблице cat3 для того, чтобы определить категорию уровни? Если отдельный параметр не нужно, то как можно php и mysql скажите, какой стол выбрать категории от?

  2. и большинство важно в этом случае, что является лучший способ построить SEO дружеские ссылки? И как MySQL узнает какую таблицу выбрать категории от? Я хотел бы использовать наиболее простейшее решение, которое возможно лайк: mysite.com/electronics/television/sony. Насколько я знаю, я должен включить по крайней мере, cat_id где-то в ссылке ... куда я ее положу? и нужно ли указывать номер уровня? к усложнить это больше категории имена на иностранном языке с акцентированные символы (хотя я создал функцию, которая меняет акцентированные символы в латинские на лету при создании категории ссылки) так что я думаю, что лучше выберите их по их идентификаторам.

  3. Как выглядит пример выбора MySQL вот так выбирает ребенка категории определенной категории?

  4. Как я могу построить хлебные крошки навигация

СТРУКТУРА MYSQL:

  • Таблица "cat1" (основная категория):

    cat1_id | cat1_name

  • Таблица "cat2" (подкатегория):

    cat2_id | cat1_id | cat2_name

  • Таблица "cat3" (подкатегория):

    cat3_id | cat2_id | cat3_name

  • Таблица "объявления":

    ad_id | cat1_id | cat2_id | cat3_id | ad_title | ad_description

Спасибо и простите за длинный пост.

1 Ответ

1 голос
/ 19 января 2011

Мой любимый шаблон для категорий (и тегов) URL:

http://mysite.com/articles/brains+zombies+legs+frogs

Символ + удобен для тегов и удобен для пауков (и SEO).Использование текста категорий важно как для пауков, так и для людей, поскольку оно имеет смысл.

Что касается SQL, я предлагаю 2 таблицы для чего-либо с категориями или тегами:

Categories (id, name, description)

CategoryRelationships (catID, thingID)

Для любогодля данной вещи вы присоединяете категории к вещам через CategoryRelationships.Например:

SELECT * FROM Things t
JOIN CategoryRelationships ON thingID = t.ID
JOIN Categories c ON catID = c.CatID

Результатом будет список вещей и их категорий, где у вас будет только одно определение каждой категории, и набор ссылок на категории через таблицу взаимосвязей.

Что касается хлебных крошек, это немного другая проблема.Панировочные сухари либо:

  • Обеспечьте навигацию по иерархии вашего сайта, либо
  • Помогите пользователю повторить свои шаги

В зависимости от типа крошкинацеливаясь на, вы берете другой подход.Для простого набора иерархических узлов сайта можно просто проанализировать URL-адрес и foreach по набору сегментов:

http://mysite.com/people/zombies/brains/brains

Анализ URI приведет к:

people, zombies, brains, brains

Для которого вы будете генерировать ссылки на каждый сегмент.

...