как лучше хранить в базе двумерный массив неизвестной длины ?

Бард

Guest
как лучше хранить в базе двумерный массив неизвестной длины ?

Все здравия ! Давно сижу на вашем форуме, но не спрашивал - все ответы на свои вопросы находил, а отвечать самому не решался =)

Проблема следующая. Есть база товаров с id товара и его основными параметрами. Но при занесении товара в базу, пользователю предлагается ввести неограниченное количество характеристик этого товара, что представляет собой чёрт знает сколько пар (название характеристики, значение характеристики) типа varchar.
Как лучше такую информацию хранить в базе ?

Я нашёл 2 варианта:

1. создать отдельную базу характеристик из 3-ёх полей:
id товара | название характеристики | значение характеристики |
Наверное, самый простой способ для дальнейшего использования, но меня смущает длина это будующей таблицы. Если товаров несколько десятков тысяч и у каждого по 2-3 десятка характеристик, то не будет ли тормозить выборка характеристик определённого товара?

2.использовать в таблице товаров поле типа text и занести пары (название характеристики, значение характеристики) разделяя спец. символом или просто построчно.

Какой из этих способов лучше? Или подскажите, пожалуйста, что-то ещё =)

p.s. если написано непонятно или сам вопрос глупый, то извините =) Нет опыта - всегда пытался до всего докопаться сам.
 

neko

tеam neko
тормозит оно может и будет, а может и нет.
у тебя в любом случае нет выбора
а вот спецсимволами ничего разделять не нужно, это ничего не ускорит зато очень сильно усложнит работу с данными.
 

Crazy

Developer
Правильный ответ: способ хранения зависит от требуемого набора операций. Если единственная операция -- "прочесть все", то вариант с сериализацией в memo-поле становится наиболее осмысленным.

Если тебе требуется, к примеру, найти товар по одной из характеристик, то второй вариант становится совершенно нежизнеспособным.
 
Сверху