nike90
10.03.2015 - 13:55
Здравствуйте, нужна ваша помощь!
Есть таблица Products
- id_product
- category
- name
- price
И таблица Categories
- id_category
- name
Мне нужно записывать продукту в какой он категории находится, категорий может быть несколько, в большинстве случаем так и будет.
Я рассматривал вариант когда в таб. Products поле category varchar и категории (id_categiry) через запятую ("10,20,37"). Но потом если мне придется делать выборку продуктов по категориях то придется использовать REGEXP или LIKE , что с точки производительности не очень хорошо.
Вопрос:
Если ли другое более оптимизированное решение?
Есть таблица Products
- id_product
- name
- price
Categories
- id_category
- name
И таблица Products_Categories
- id_product
- id_category
Valick
10.03.2015 - 14:27
Цитата (nike90 @ 10.03.2015 - 12:55) |
Если ли другое более оптимизированное решение? |
оно не другое, оно единственно правильное, это называется отношение многие ко многим и в реляционной БД оно материализуется в таблицу связи, о которой уже написал гость.
_____________
Стимулятор ~yoomoney - 41001303250491
nike90
10.03.2015 - 17:13
Я рассматривал этот вариант, но меня смутил тот факт, что если в каждом продукте будет по 3 категории в среднем, то в таблице ссылок Products_Categories будет в 3 раза больше записей чем в таб. Products.
Цитата (nike90 @ 10.03.2015 - 17:13) |
Я рассматривал этот вариант, но меня смутил тот факт, что если в каждом продукте будет по 3 категории в среднем, то в таблице ссылок Products_Categories будет в 3 раза больше записей чем в таб. Products. |
БД не рухнет, не бойся.
Для снятие предостережений почитай про нормальные формы и приведение к нормальным формам. Там увидишь что идея которую ты описал всегда подлежит нормализации и приводится к той форме о которой написал Гость.
_____________
Трус не играет в хокей
nike90
11.03.2015 - 11:54
Спасибо всем за хороший совет.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.