Стратегия для отображения продуктов и магазинов, может быть, страны тоже? - PullRequest
1 голос
/ 26 декабря 2010

То, как я это вижу: в стране, скажем, 10 миллионов магазинов (гораздо больше в реальности).По меньшей мере 50 миллионов уникальных продуктов продаются в этих 10 миллионах магазинов.(опять же намного больше в реальности).

Итак, чтобы отобразить это, я думаю, что это будет что-то вроде: pk_id, store_id, product_id

Но таким образом у нас будет 500 миллионов строк на страну x дажевзять 100 стран = 50 миллиардов строк.Не очень эффективная таблица для поиска, чтения / записи и т. Д.

Есть ли лучший способ отобразить товар, магазины и затем добавить страны в список?

Я не добавил в интернет-магазины или онлайн-продукты, которые почти утроят этот размер.

Ответы [ 3 ]

0 голосов
/ 26 декабря 2010

Не храните все в одной таблице. Вот как вы должны это сделать:

  1. Хранение продуктов в таблице products (product_id и т. Д. / Индекс product_id)
  2. Хранить местоположения магазинов и страны в отдельной таблице (id, store_id, country_id / создать один индекс с именем store_country, содержащий столбцы store_id, country_id)

Таким образом, вы можете иметь 50 миллионов товаров (50 миллионов строк) и 50 миллионов магазинов в 38 (случайных) странах, 1 900 000 000 строк, при условии, что каждый магазин имеет местоположение в каждой стране, и каждый магазин продает каждый продукт (нереально).

Мне нравятся большие цифры.

0 голосов
/ 27 декабря 2010
  • Один стол для продуктов
  • Одна таблица для стран (используйте код страны ISO в качестве PK)
  • Одна таблица для магазинов (включая внешний ключ к таблице стран)
  • Один стол для картирования товаров и магазинов. Используйте {product_id, store_id} в качестве первичного ключа)

Если ваша компания чем-то похожа на большинство компаний, я думаю, вы обнаружите, что не все продукты продаются во всех магазинах, что делает таблицу сопоставления намного меньше, чем вы ожидаете. (Если все магазины продают все товары всегда, вам не нужен картографический стол)

0 голосов
/ 26 декабря 2010

Каждый магазин находится в определенной стране.

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

Чтобы сделать поиск эффективным, вам нужно добавить индексы.

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