Setor
Новичок
Прошу помощи со структурой каталога товаров
Доброго времени суток!
Имеется E-магазин компьютерного железа (работает уже 1 год в БД около 40 тыс. продуктов). Главная его особенность - работа с несколькими складами (на данный момент подключено 4 склада и планируется ещё) и один продукт может находиться сразу на нескольких складах, но суть вопроса не в этом.
У нас имеется 3 таблицы:
1) products ( id продукта, ид_производителя и всякие флаги )
2) products_attributes( id атрибута, id продукта, id склада, цена, кол-во на складе, гарантия )
3) products_names ( id продукта, имя продукта ) - эта таблица изначально проектировалась под мультиязычные названия продуктов, но позже эта потребность отпала.
Клиент теперь хочет, чтобы отображалось название продукта со склада с самым выгодным предложением. Все параметры продуктов для каждого склада хранятся в таблице products_attrubites. Обновлять при каждом обновлении складов "имя продукта" в таблице "products_names" я не хочу, а планирую хранить в этой таблице название для каждого продукта с каждого склада и отображать из них те, которые относятся к самому выгодному предложению.
У меня возник такой вопрос - стоит ли хранить название продуктов для каждого конкретного склада в отдельной таблице напр, products_names( id названия, id продукта, id склада, имя продукта ) или добавить в таблицу products_attributes поле "имя продукта"?
Тип поля "имя продукта" - text, т.к. имена некоторых продуктов длиннее 255 символов, не хочется грузить products_attributes текстовыми полями. Есть ещё такой нюанс, что тип таблицы products_attributes - InnoDb, но мне понадобится делать FULLTEXT поиск по названиям продуктов, и у меня уже несколько раз возникали проблемы с таблицей названий типа MyISAM, таблица ломалась. По этому я больше склоняюсь к выделению названий продуктов в отдельную таблицу типа MyISAM. Количество записей в ней будет около 50 000 и будет медленно расти. Хотелось бы спросить общественность, правильное ли я принимаю решение? Может будут какие мнения на данный счёт?
P.S. в запросах используются так же и другие связные таблицы. И я был бы признателен, если кто знает, где в сети есть информация по проектированию БД серьёзных магазинов.
Доброго времени суток!
Имеется E-магазин компьютерного железа (работает уже 1 год в БД около 40 тыс. продуктов). Главная его особенность - работа с несколькими складами (на данный момент подключено 4 склада и планируется ещё) и один продукт может находиться сразу на нескольких складах, но суть вопроса не в этом.
У нас имеется 3 таблицы:
1) products ( id продукта, ид_производителя и всякие флаги )
2) products_attributes( id атрибута, id продукта, id склада, цена, кол-во на складе, гарантия )
3) products_names ( id продукта, имя продукта ) - эта таблица изначально проектировалась под мультиязычные названия продуктов, но позже эта потребность отпала.
Клиент теперь хочет, чтобы отображалось название продукта со склада с самым выгодным предложением. Все параметры продуктов для каждого склада хранятся в таблице products_attrubites. Обновлять при каждом обновлении складов "имя продукта" в таблице "products_names" я не хочу, а планирую хранить в этой таблице название для каждого продукта с каждого склада и отображать из них те, которые относятся к самому выгодному предложению.
У меня возник такой вопрос - стоит ли хранить название продуктов для каждого конкретного склада в отдельной таблице напр, products_names( id названия, id продукта, id склада, имя продукта ) или добавить в таблицу products_attributes поле "имя продукта"?
Тип поля "имя продукта" - text, т.к. имена некоторых продуктов длиннее 255 символов, не хочется грузить products_attributes текстовыми полями. Есть ещё такой нюанс, что тип таблицы products_attributes - InnoDb, но мне понадобится делать FULLTEXT поиск по названиям продуктов, и у меня уже несколько раз возникали проблемы с таблицей названий типа MyISAM, таблица ломалась. По этому я больше склоняюсь к выделению названий продуктов в отдельную таблицу типа MyISAM. Количество записей в ней будет около 50 000 и будет медленно расти. Хотелось бы спросить общественность, правильное ли я принимаю решение? Может будут какие мнения на данный счёт?
P.S. в запросах используются так же и другие связные таблицы. И я был бы признателен, если кто знает, где в сети есть информация по проектированию БД серьёзных магазинов.