Tratar los datos de esta manera..

  • Autor Autor xcodex
  • Fecha de inicio Fecha de inicio
X

xcodex

Hola!, estoy estancado con lo siguiente con una web la cual funciona de la siguiente manera:
1) Una noticia publicada (a la cual le corresponde un registro en una tabla de la BD), con un campo llamado recomendaciones.
2) El usuario lee una noticia, y al hacer clic en "recomendar" se agrega el número de su ID de registro.

Hasta acá todo funciona, el problema es cuando otro usuario hace clic en "recomendar", no se como almacenar varios el ID de distintos usuarios en un mismo campo de la tabla y luego tratarlos de manera individual..
 
[MENTION=203219]xcodex[/MENTION] puedes guardarlos como json, pero creo que lo recomendable es relacionar otra tabla a esa noticia para guardar esos datos!!
 
Los agrupas en un array y usas json como te comentaron arriba o serialize(), para obtenerlos individualmente puedes usar un loop como foreach con unserialize()
 
Una opción es que guardes esos datos en otra tabla, por ejemplo "RecomendacionesNoticia" y relacionarlas. Sino puedes utilizar alguna función PHP como serialize o un mecanismo propio. Lo vas guardando como tipo texto o "string" y podes id y los vas separando con punto y coma por ejemplo, y luego al pedir ya sabes como están separados para utilizar los datos. Mi recomendación sería utilizar la primera opción que te nombré.
 
Crea una nueva tabla para ello. Las bases de datos como mysql fueron diseñadas para que tengas un sinfín de tablas relacionadas entre si. Guardarlo como json es un hack y puede ser un dolor de cabeza tratar con esos datos.
 
No tiene caso agrupar no Te compliques solo hazle otra tabla.
 
Crea una tabla que tenga un campo para el id del usuario y otro campo para el id de la noticia.

Opcionalmente puedes crear un tercer campo para que sea la clave primaria de esta tabla o utilizar una clave privada combinando ambos campos de id de usuario e id de noticia.


Luego cuando alguien recomiende solo inserta un registro en esta tabla nueva, uniendo la noticia con el usuario mediante los IDs. Cuando quieras recuperar el dato de si alguien ha recomendado o no el post haz lo mismo pero a la inversa, usa ambos IDs para comprobar si existe el registro en la tabla.