В таблице есть разные поля - phone, adress и т.д.
Например пользователь ввел 4 телефона. Нужно в одну ячейку записать 4 телефона с уникальным разделителем. В случаи с телефонами понятно - достаточно будет одного $, но если напимер будет храниться 4 разных текста, где часто встречается $, нужен будет другой разделитель. Какой вы используете?
Invis1ble
10.06.2014 - 15:38
waldicom
10.06.2014 - 16:10
Если уж совсем все плохо и нельзя менять структуру данных, то надо не разделять, а сериализировать (или json_encode/decode)
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
sergeiss
10.06.2014 - 16:27
vuler, также можно использовать "правильную" БД, например PostgreSQL - там есть тип данных "массив"
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Если надо хранить 4 телефона одного пользователя, то надо сделать одтедльную таблицу где хранить телефоны пользователей.
По типу user_id|phone.
А не городить ерунду с разделителями.
_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."
Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. ©
AllesKlar
Я Mysql использую.
Как вы предлагаете хранить данные, если есть таблица с данными о компаниях.
есть поля phone,sot_phone,icq,skype,email,soc_seti и т.д.
В этих полях может храниться несколько телефонов, icq и тд.
Т.е. вы создаете кучу таблиц отдельных icq,phone и т.д.
Но тогда запрос к серверу будет огромный с left join-ом. Не проще ли вытаскивать из одной таблицы все и потом дербанить поле по разделителю?
json_encode/decode - как вариант в принципе подходит, чтобы массив гонять в строку и обратно.
waldicom
10.06.2014 - 16:48
Цитата (vuler @ 10.06.2014 - 13:37) |
Я Mysql использую. Как вы предлагаете хранить данные, если есть таблица с данными о компаниях. есть поля phone,sot_phone,icq,skype,email,soc_seti и т.д. В этих полях может храниться несколько телефонов, icq и тд. Т.е. вы создаете кучу таблиц отдельных icq,phone и т.д. Но тогда запрос к серверу будет огромный с left join-ом. Не проще ли вытаскивать из одной таблицы все и потом дербанить поле по разделителю? |
Можно и по другому: таблицу с типами контактов (icq, skype. phone, mobile etc) и таблицу с собственно значениями (user_id, contact_type, value).
И нет, не легче. Там будут проблемы с поиском, заменой и удалением.
Цитата (vuler @ 10.06.2014 - 13:44) |
json_encode/decode - как вариант в принципе подходит, чтобы массив гонять в строку и обратно.
|
Да, но очень желательно только тогда, когда действительно нет возможности правильно построить базу.
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
sergeiss
10.06.2014 - 18:00
Цитата (vuler @ 10.06.2014 - 16:37) |
Не проще ли вытаскивать из одной таблицы все и потом дербанить поле по разделителю? |
Ну а чего тогда уж мелочиться-то? Доводи до "логического конца". Сделай одно текстовое поле в единственной таблице. В него записывай с помощью JSON данные в любом формате. А в ПХП разбирай на части.
Только потом не задавай вопросы типа "почему БД очень медленно работает" и как тебе ускорить процесс.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
bestxp
10.06.2014 - 19:18
Ага и в постгресе нативная уже поддержка json
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.