Я работаю над проектом по разработке базы данных, где нам нужно хранить данные о продукте и делать их доступными через REST API. Конечная цель - сделать данные о продукте доступными для нескольких компаний, которые намереваются использовать данные о продуктах на разных платформах электронной коммерции. Хранилище данных, в котором мы будем хранить данные о продукте, не будет прямым источником ни для одной из платформ электронной коммерции. Это просто централизованное хранилище, которое будет использоваться компаниями, использующими его для переноса данных на свои собственные платформы электронной коммерции.
Данные о продукте будут включать атрибуты продукта, такие как размер, цвет, вес и т. Д., В форме пар ключ / значение, которые различаются в зависимости от продукта (продукт 1 может иметь 10 атрибутов, а продукт 2 может иметь 37 атрибутов, ни один из которых не совпадает с продуктом 1), и он будет включать в себя изображения, технические характеристики продукта, таблицы безопасности материалов и информацию о таксономии. Мы также собираемся хранить информацию о продавце, который продает продукт.
Будет работать традиционная реляционная база данных, такая как SQL, за исключением того, что я не знаю, как обращаться с атрибутами. Имеет смысл иметь простую таблицу продуктов с отношением внешнего ключа к таблице поставщиков и таблицам таксономии. Ниже приведен приблизительный план.
Product Table: ID (PK), UPC, Description, VendorID (FK), SegmentID (FK),
CategoryID (FK), TypeID (FK), SubTypeID (FK), DateAdded, DateLastModified,
Vendor Table: ID (PK), Name, Address, Description, DateAdded, DateLastModified
Segment Table: ID (PK), Description, DateAdded, DateLastModified
и т. Д. И т. Д. *
Часть, с которой я борюсь, это Атрибуты. Должны ли атрибуты находиться в поле таблицы продукта в формате XML или в отдельной таблице со столбцами ключ / значение?
Является ли реляционная база данных правильным подходом или вместо нее следует использовать базу данных NoSQL, например MongoDB?
Будет несколько сотен тысяч товаров.