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

Тема в разделе "PHP", создана пользователем xorbit13, 16 апр 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. xorbit13

    xorbit13 Создатель

    Регистр.:
    9 фев 2008
    Сообщения:
    41
    Симпатии:
    10
    нужно сохранить в строке массив id типа 23 56 87 45 12
    так чтобы среди них можна было делать поиск, теоретически как это лучше реализовать
     
  2. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    Можете объяснить, зачем вам такое нужно?
     
  3. masto

    masto Прохожие

    сериализация в помощь.
    поиск - простой текстовый
     
  4. f0xman

    f0xman Прохожие

    $string = implode(" ", $array);
    а правда зачем искать в строке, если поиск можно и по массиву сделать?
     
  5. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    В php есть замечательная функция как serialize которая преобразует массив в строку, а функция unserialize преобразовывает обратное действие.
    В базу заносишь строку, поиск юзаешь например через LIKE '%%', в php преобразуешь в массив и вытаскиваешь нужные данные...Это что касается твоего примера, а так я бы тебе советовал изменить твою схему..например сделать поле для id.. так гораздо оптимальней будет
     
  6. xorbit13

    xorbit13 Создатель

    Регистр.:
    9 фев 2008
    Сообщения:
    41
    Симпатии:
    10
    Разъясню, делаю каталог предприятий, есть места например обычный магазин и ресторан
    Магазины разделяются на одежда, обувь.. ресторан на кафе, бары.. и еще по типу кухни…
    Что б все находилось в одной таблице а не создавать отдельно таблицы ресторанов магазинов реши сделать одно поле в котором будут заносится только id типов, по которым можно будет делать выборку в SQL
    как єто лучше реализовать
     
  7. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Это будет лучше реализовано, если сделаешь по нормальному..с несколькими таблицами...
    Иначе
    релевантность поиска = 0.
    оптимизация = 0.
    поиск будет сравнительно медленным.
    Да и создавать такую базу я думаю у тебя займет приличное время.
     
  8. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    xorbit13, в таких случаях делается таблица связей многих ко многим. Например, в ней содержатнся id предпритий и id типов. Выборка делается на основе нескольких таблиц.
     
  9. xorbit13

    xorbit13 Создатель

    Регистр.:
    9 фев 2008
    Сообщения:
    41
    Симпатии:
    10
    посоветовался решили что да лучше так и сделать :)
     
  10. lobzik

    lobzik

    Регистр.:
    8 авг 2006
    Сообщения:
    311
    Симпатии:
    49
    Воможно, вам стоит хранить данные не в стрингах, а в типе ENUM
     
Статус темы:
Закрыта.