[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как лучше спроектировать таблицы в БД MySQL
Spydel
Всем привет!
Прошу вашей помощи!
Во вложении картинка, что нужно сделать, чтобы получилось в итоге.
То есть, если кликаем 'объем памяти = 16gb' и 'Диагональ дисплея 4"', то выбрать товары только 16 gb и 4". Все вроде бы просто. Теперь сложнее пример:
Выберем поколение "iphone 5s" и "iphone 5c", и объем памяти "64gb". По идеи должно получится все товары, которые имеют память 64gb (Только iphone 5s, так как 5c на 64gb нет).


То есть что нужно: Совет как спроектировать таблицы и какой нужно создать запрос чтобы элементы внутри раздела работали по связке "или" (разделы это "Объем памяти", "Диагональ дисплея"), а связь между разделами в связке "И".
Пример: (iphone 5s или iphone 5с) И (16gb).

Я спроектировал БД но не удачно на мой взгляд, потому что так и не придумал как сделать правильнее и чтобы работало. Потому что не особо силен в MySQL.
Так как все названия я хранил по одному столбцу и одновременно ровняться разным значениям столбец не может. Как я понял, я неправильно сделал изначально структуру и теперь проблема.
А может просто туплю ) Помогите пожалуйста!
redreem
1. делаешь кучу справочников по нужным категориям (диагонали, модели, память и т.п.). типа d_model, d_memory (айди, нейм).

2. делаешь таблицу продуктов (айди, нейм).

3. далее таблицы связок для каждого справочника типа ref_product_model, ref_product_memory и т.п. (айди из справочника, айди из продуктов).

выборка типа так:

select
*
from products p
join ref_product_model mod on mod.id_product = p.id
join ref_product_memory mem on mem.id_product = p.id
...


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.