Всем доброго дня. Вопрос такой: есть в бд значения пример:
s:82:"email1@rambler.ru,email2@yandex.ru,email3@mail.ru,email4@mail.ru"
Как осуществить проверку при регистрации с сериализованным значением из БД?
Пример:
Добавляется в базу значение email1@rambler.ru, происходит поиск: нет ли его нигде в serialize значениях бд, если нет, то добавляет.
Пытался как можно понятней объяснить)
Идея: перед добавлением циклично выбирать все значения из бд, их unserialize, и потом уже сверять каждую запись тоже в этом же цикле, с тем значением, что хотим добавить?
Или же перевести все значения в массив, и сверять уже поиском по массиву?
1. Fetis - 26 Июня, 2014 - 10:44:57 - перейти к сообщению
2. Zuldek - 26 Июня, 2014 - 10:55:48 - перейти к сообщению
правильнее держать данные авторизации в отдельных полях, вот и создайте их пусть хоть и дублируют частично сериализованные данные профиля. Не нужно создавать себе трудности чтобы потом их героически преодолевать.
3. Fetis - 26 Июня, 2014 - 10:57:42 - перейти к сообщению
Zuldek пишет:
правильнее держать данные авторизации в отдельных полях, вот и создайте их пусть хоть и дублируют частично сериализованные данные профиля. Не нужно создавать себе трудности чтобы потом их героически преодолевать.
Хорошо бы это были данные авторизации, дак это просто список всех email адресов у одной организации
А создавать отдельную таблицу не хочется, ибо напряжно будет с join'ами всё выбирать, и затратно вроде как.
4. IllusionMH - 26 Июня, 2014 - 12:03:58 - перейти к сообщению
Fetis, а в таком виде не напряжно искать по ним? И нормальный вариант скорее всего будет быстрее работать в приведенном случае, чем поиск(и в сотни раз быстрее чем unserialize в цикле).
"Вроде как" это не аргумент не сделать. Лучше написать и проверить производительность общую. Сомнительно что будут просады именно из-за этого
В крайнем случае выбирайте регуляркой из сериализованной строки, но это криво.
"Вроде как" это не аргумент не сделать. Лучше написать и проверить производительность общую. Сомнительно что будут просады именно из-за этого
В крайнем случае выбирайте регуляркой из сериализованной строки, но это криво.
5. DelphinPRO - 26 Июня, 2014 - 12:17:30 - перейти к сообщению
Fetis пишет:
А создавать отдельную таблицу не хочется, ибо напряжно будет с join'ами всё выбирать, и затратно вроде как.
пффф, так и нужно было сделать...