Хранение массива в тиблице

GrayMaster

Новичок
Хранение массива в тиблице

Добрый день уважаемые гуру :)
Подскажите пожалуйста есть ли стандартные методы хранения массива в MySQL таблице, например array of int...
А то приходится юзать: "1|2|3|4|5|6|", а затем: explode("|", $field);

Заранее благодарен.
 

Фанат

oncle terrible
Команда форума
есть.
стандартным методом хранения массивов в таблице является хранение каждого элемента массива в своей ячейке.
 

GrayMaster

Новичок
Кстати, а зачем это нужно?
Просто нередко случается, что нужно сохранить N количество элементов в ячейку, например есть спикок, нужно сохранить выбраные ряды списка...
Я делаю типа: 15,87, 25,98, 37,...
 

phprus

Moderator
Команда форума
[m]serialize[/m] и [m]unserialize[/m] Это должно тебе помочь. но в базе в таком случае придется хранить строки в которые будут упакованы массивы.
 

svetasmirnova

маленький монстрик
GrayMaster
Вообще тут 3 подхода. Первый и оптимальный в 99% случаях: тот, о котором сказал Фанат. Реализация бывает разной в зависимости от ситуации. Надо почитать про нормализацию и отношения многие ко многим, один ко многим.

В твоём случае это реализовать можно так: создаётся дополнительная таблица с двумя полями: уникальный id ряда, в котором ты сейчас хранишь фактически сериализованный массив и номер из списка. Получатся уникальные пары, выбрать которые не составит труда.

Второй подход подходит только для списков с заранее заданным ограниченным набором элементов - это хранение в столбцах типа SET.

Третий подход: хранение сериализованных массивов как сказал phprus или как ты делал раньше (то, что ты делал это та же сериализация вручную).
 
Сверху