Сериализация против Имплода

Как вы думаете, это лучший способ сохранить несколько изображений с идентификатором?внутри записи в базе данных MySQL? Это'просто идентификатор изображенияs, которые будут использоваться для получения изображений из другой библиотеки.

Я взрываю идентификатор?s в записи, как 1 # 4 # 7 # 9 # 10 # 12 или я просто сериализовать массив и сохранить это? Есть ли какие-либо преимущества в производительности при использовании одного вместо другого? Стабильность предпочтений?

Я просто всегда использовал взрыва и взрыва, никогда не задумывался об этом. Благодарю.

 Mark Baker02 нояб. 2012 г., 15:33
Лучшее решение - нормализовать ваши таблицы
 Orbling02 нояб. 2012 г., 16:29
Определенно дело в нормализации таблиц и наличии отдельной таблицы списка изображений.

Ответы на вопрос(4)

сериализация - это получить строковое представление объектастатус. Даже если это работает, я неЯ думаю, что это лучший способ сделать то, что вы хотите. Я бы предпочел хранить объект json с идентификаторами. Поскольку объект json является мультиплатформенным, является строкой и легко читается человеком, я думаю, это хороший подход.

 nickcorin02 нояб. 2012 г., 15:35
Да, это может быть лучшим способом, потому что мне нужно создать API для подключения к приложениям для Android и iOS. Я буду использовать JSON для этого, так что это, вероятно, лучший способ. Спасибо!

и вы действительно хотите сохранить список идентификаторов, тогда я предлагаю использовать простой список через запятую, потому что в MySQL уже есть некоторые функции, которые могут напрямую работать со значениями строк, разделенными запятыми: :

FIND_IN_SEThttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set:

SELECT FIND_IN_SET('b','a,b,c,d'); --> 2

CONCAT_WShttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws

SELECT CONCAT_WS(',','First name',NULL,'Last Name'); --> 'First name,Last Name'

Конечно, ты выигралне может быть в состоянии SQL-соединения, но это все еще может быть полезным.

 biziclop02 нояб. 2012 г., 15:44
Да, это совершенно то же самое, но это может быть одной из причин, чтобы сохранить существующее решение взлома (просто измените# до запятой).
 nickcorin02 нояб. 2012 г., 15:42
Да, хорошо, если ям, это в значительной степени просто с помощью взрыва?

implode() немного быстрее, так как он предполагает массив иserialize() не знает, что вы передаете ему.

РЕДАКТИРОВАТЬ на основании ОП 'комментарий:

Все изображения хранятся в отдельной библиотеке с заголовком, описаниями и тому подобным. Но да, я понимаю вашу точку зрения.

В этом случае не очень хорошая идея, поэтому сериализуйте несколько идентификаторов в одном поле. То, что вам нужно, это отношение *-ко-многим между вашими 2 таблицами. Это правильный способ представления многозначных полей:

+----------------------+
|  USER                |
+---------+------+-----+
| user_id | name | ... |
+---------+------+-----+

+----------------------+
|  USER_PICTURE        |
+---------+------------+
| user_id | picture_id |
+---------+------------+

+--------------------------+
|  PICTURE                 |
+------------+-------+-----+
| picture_id | title | ... |
+------------+-------+-----+
 Bogdan Burim02 нояб. 2012 г., 15:46
+1 для структуры таблиц.
Решение Вопроса

сериализации или JSON-кодирование.

этоболее гибкий и, например, позволит вам добавить заголовок изображения и другие детали там в будущем ...

 Carlos02 нояб. 2012 г., 15:39
@BogdanBurim или он просто неможет быть знаю.
 Bogdan Burim02 нояб. 2012 г., 15:34
Лучше использовать JSON ..
 Carlos02 нояб. 2012 г., 15:45
@BogdanBurim Это доказывает, что он знает, что ему нужен один стол для своих фотографий, а другой - для XXX, но, возможно, он нене знаю, как правильно их связать. Но я нене знаю ... :)
 djangodude24 сент. 2018 г., 08:39
Я думаю, что было бы легко использовать такие функции, как find_in_set, если бы вместо этого я хранил их в списке через запятую.
 nickcorin02 нояб. 2012 г., 15:44
Я просто предпочитаю использовать идентификаторпарни .. этоЭто мое личное предпочтение. Но я думаю, что яЯ собираюсь с JSON, спасибо за помощь, хотя
 Bogdan Burim02 нояб. 2012 г., 15:37
@jackflash он избегает этого по какой-то секретной причине ...
 Bogdan Burim02 нояб. 2012 г., 15:39
@jackflash Я думаю, что он делает, поскольку он предположил, чтобы поместить заголовки в отдельную таблицу
 nickcorin02 нояб. 2012 г., 15:33
Все изображения хранятся в отдельной библиотеке с заголовком, описаниями и тому подобным. Но да, я понимаю вашу точку зрения.
 Carlos02 нояб. 2012 г., 15:36
@nickcorin В таком случае ты не должен• сериализовать несколько идентификаторов в одно поле. Что вам нужно, так это отношение *-ко-многим между обеими таблицами.

Ваш ответ на вопрос