mysql сохранить в строке массив

Статус
В этой теме нельзя размещать новые ответы.

xorbit13

Создатель
Регистрация
9 Фев 2008
Сообщения
41
Реакции
10
нужно сохранить в строке массив id типа 23 56 87 45 12
так чтобы среди них можна было делать поиск, теоретически как это лучше реализовать
 
Можете объяснить, зачем вам такое нужно?
 
сериализация в помощь.
поиск - простой текстовый
 
$string = implode(" ", $array);
а правда зачем искать в строке, если поиск можно и по массиву сделать?
 
В php есть замечательная функция как serialize которая преобразует массив в строку, а функция unserialize преобразовывает обратное действие.
В базу заносишь строку, поиск юзаешь например через LIKE '%%', в php преобразуешь в массив и вытаскиваешь нужные данные...Это что касается твоего примера, а так я бы тебе советовал изменить твою схему..например сделать поле для id.. так гораздо оптимальней будет
 
Разъясню, делаю каталог предприятий, есть места например обычный магазин и ресторан
Магазины разделяются на одежда, обувь.. ресторан на кафе, бары.. и еще по типу кухни…
Что б все находилось в одной таблице а не создавать отдельно таблицы ресторанов магазинов реши сделать одно поле в котором будут заносится только id типов, по которым можно будет делать выборку в SQL
как єто лучше реализовать
 
как єто лучше реализовать
Это будет лучше реализовано, если сделаешь по нормальному..с несколькими таблицами...
Иначе
релевантность поиска = 0.
оптимизация = 0.
поиск будет сравнительно медленным.
Да и создавать такую базу я думаю у тебя займет приличное время.
 
xorbit13, в таких случаях делается таблица связей многих ко многим. Например, в ней содержатнся id предпритий и id типов. Выборка делается на основе нескольких таблиц.
 
xorbit13, в таких случаях делается таблица связей многих ко многим. Например, в ней содержатнся id предпритий и id типов. Выборка делается на основе нескольких таблиц.

посоветовался решили что да лучше так и сделать :)
 
Воможно, вам стоит хранить данные не в стрингах, а в типе ENUM
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху