2009-08-05 3 views
1

Я хочу построить сайт, похожий на ebay (его мини-версия, используя стек LAMP в качестве базовой настройки, на мой взгляд, или, может быть, вы, ребята, предложите что-то еще), и мне интересно, как они построили свою систему. Больше всего я не понимаю, как они управляют своими категориями. У них есть один код поиска и, возможно, один код для размещения товаров для продажи, а также один код для отображения элементов. Но как они создают/хранят шаблон для каждой категории? Также какова структура базы данных за их настройкой? И, наконец, у них есть так много категорий и подкатегорий, скажем, кто-то отправляет элемент внутри (который, скорее всего, процесс Ebay используется для добавления категорий) Motors -> Запчасти & аксессуары> Спортивные запчастипытается понять схему ebay

Через несколько дней люди просить больше подкатегорий в разделе "Спортивные частей":

  • Аксессуары
  • автогонок частей
  • Крепеж, жидкости & Прокладки
  • Кар т Гонки Запчасти
  • Оборудование безопасности
  • Другие

Так что теперь у них есть новый уровень для гоночных частей, которые идут как это:

  • Motors -> Запчасти & аксессуары> Спортивные запчасти> Аксессуары
  • Моторы -> Запчасти & Комплектующие> Комплектующие> Комплектующие> Крепежные изделия и т. Д.

Что происходит с существующими списками, которые были опубликованы до добавления новых подкатегорий? они перемещаются в подкатегорию? Включает ли ebay новые элементы, которые будут перечислены в подкатегориях, и удаляет их старую форму отправки для «гоночных частей»? Если они это сделают, что, если пользователю не хватает категории, пользователь может запутаться и не опубликовать, а затем ebay потеряет деньги. И если они не удалят форму публикации общих гоночных частей, пользователи будут публиковать в категории, которая является слишком общей, и теперь становится трудно использовать параметр «Уточнить поиск», потому что все формы имеют разные поля, которые ebay может фильтровать от.

Если у вас есть идеи, пожалуйста, дайте мне знать. Я действительно путают о том, как они это делают, и очень хотелось бы понять :)

ответ

4

Вот Randy Shoup on Ebay's Architecture

Он в основном говорит о масштабируемости, доступности, управляемости и т.д. схемы является то, что вы ahve разработать на ваш на основе ваших конкретных требований. Slides

От его chat transcript

«Это даже реляционная база данных, или это действительно разные?

Это очень отличается. Это поисковик, как Google или Yahoo! разработан теми же людьми который разработал поисковую систему AltaVista, и, как и во многих поисковых системах, он разработан на аналогичных принципах, а именно, что это инвертированный индекс.Существует набор документов с идентификаторами, ключевые слова индексируются в эти документы, а операции запроса происходят путем пересечения списков или векторов этих ключевых слов очень просто, и есть намного больше подробностей о том, как это работает. Задача - как и в стороне, проблема для поисковой системы в стиле eBay заключается в том, что наши пользователи ожидают, что поисковая система будет обновлена ​​практически в реальном времени. Когда кто-то делает ставку на элемент, который изменяет цену, а цена - это фильтр, который очень интересует запрос. Таким образом, на самом деле это означает, что стиль - классический стиль веб-поисковой системы «вы создаете индекс в виде пакетного режима, а затем загружаете его в поисковую систему» ​​- это то, что на самом деле не работает для нас. Это должно быть намного больше в режиме реального времени. Поэтому я немного расскажу о том, как эта система реального времени работает в моей секции асинхронизации, но так или иначе, чтобы закончить мысль о масштабируемости для поиска, идея состоит в том, что поисковая система может быть разделена по горизонтали. Таким образом, есть этот общий индекс поиска любого размера. Мы делим его на куски десять или двадцать или шестьдесят или сто, и таким образом делим инфраструктуру. И тогда у нас есть агрегатор, который теперь разбрасывает/собирает все эти разные части индекса. Поэтому кто-то запрашивает «iPod» или «Mickey Mouse» или «Wii», и агрегатор отправляет запрос каждому из разных разделов или осколков, возвращает результаты и агрегирует их и отправляет их пользователю ».

+0

отлично, спасибо большое! Звучит очень интересно. – Kentor

0

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

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

+0

Что делать, если у ребенка более одного отца? – Dejell