Дизайн базы данных одного продукта для нескольких рынков

Имея абстрактную задачу на данный момент времени:

У нас есть список продуктов для страны А и список продуктов для страны Б, иногда они совпадают, иногда продукты из страны А отличаются от того, что предлагается в стране Б.

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

Что следует учитывать при разработке базы продуктов?

Немного мыслей:

=> Таблица товаров должна быть специфичной для каждого рынка, например AUSTRALIAN_PRODUCTS, US_PRODUCTS, где id товара — уникальный идентификатор

=> Иметь несколько схем для каждого рынка

=> Иметь несколько экземпляров базы данных для каждого рынка


person Jackie Chan    schedule 09.07.2013    source источник


Ответы (2)


Когда вы говорите «несколько схем» или «несколько экземпляров БД», я думаю, вы имеете в виду «уникальные для каждой страны». Я бы избегал этого как очень сложного в долгосрочной перспективе. Предполагая, что один и тот же product_id может встречаться для разных продуктов в двух разных странах, я думаю, вы обнаружите, что сохранение одной БД с комбинированным уникальным ключом country_code, product_id будет наиболее гибким в долгосрочной перспективе.

person bitfiddler    schedule 09.07.2013

Несколько замечаний

Несколько соображений:
Таблица продуктов должна быть специфичной для каждого рынка, например AUSTRALIAN_PRODUCTS, US_PRODUCTS, где id продукта – это уникальный идентификатор.

Я бы не стал делать такую ​​вещь. Базовая нормализация принесет структуру таблиц, например

  • Страна
  • Товар
  • СтранаПродукт

Иметь несколько схем для каждого рынка

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

Иметь несколько экземпляров базы данных для каждого рынка

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

person Luis LL    schedule 09.07.2013