Serializar vs Implode

¿Cuál cree que es la mejor manera de almacenar unos pocos identificadores de imagen dentro de un registro en una base de datos MySQL? Es solo la identificación de la imagen que se usará para buscar las imágenes de una biblioteca diferente.

¿Implico los identificadores en el registro como 1 # 4 # 7 # 9 # 10 # 12 o simplemente serializo el arreglo y lo almaceno? ¿Hay algún beneficio de rendimiento al usar uno en lugar del otro? Preferencias de estabilidad?

Siempre he usado implosión y explosión, nunca realmente lo pensé mucho. Gracias.

Solutions Collecting From Web of "Serializar vs Implode"

Me gustaría peer serializar o codificar JSON.
Es más flexible y, por ejemplo, le permitirá agregar títulos de imágenes y otros detalles allí en el futuro …

Si no desea (¿más?) Normalizar sus tablas, y realmente solo desea almacenar una lista de identificadores, entonces sugiero usar una lista simple separada por comas, porque MySQL ya tiene algunas funciones que pueden tratar directamente con las comas. valores de cadena separados:

FIND_IN_SET : http://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_WS : http://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' 

Por supuesto, no podrá hacer SQL JOINs, pero aún así puede ser útil.

Hasta donde sé, no hay diferencias significativas en este caso, pero implode() es un poco más rápido ya que asume una matriz y serialize() no sabe lo que le está pasando.

EDITAR basado en el comentario de OP:

Bueno, todas las imágenes se almacenan en una tabla de biblioteca separada con el título y las descripciones y cosas por el estilo. Pero sí veo tu punto.

En ese caso, no es una buena idea, así que serialice varias ID en un solo campo. Lo que necesita es una relación * -to-Many entre sus 2 tablas. Esta es la forma correcta de representar campos multivalorados:

 +----------------------+ | USER | +---------+------+-----+ | user_id | name | ... | +---------+------+-----+ +----------------------+ | USER_PICTURE | +---------+------------+ | user_id | picture_id | +---------+------------+ +--------------------------+ | PICTURE | +------------+-------+-----+ | picture_id | title | ... | +------------+-------+-----+ 

Mi amigo, la serialización es obtener una representación de cadena del estado de un objeto. Incluso si funciona, no creo que sea la mejor manera de hacer lo que quieres. Preferiría almacenar un objeto json con los identificadores. Debido a que un objeto json es multiplataforma, es una cadena y es fácilmente legible por un humano, creo que es un buen enfoque.