Estoy diseñando un sistema de noticias usando PHP/MySQL similar a Facebook.PHP News Feed Database & Design
He hecho una pregunta similar antes pero ahora he cambiado el diseño y estoy buscando comentarios.
ejemplo de noticias:
user_a comentado nuevo álbum Usuario_B 's.
"Hey man nice pictures!"
Usuario_B añadió una nueva Foto a [él/ella] perfil.
[show photo thumbnail]
Inicialmente, he implementado esto utilizando columnas excesivos para Obj1: Tipo 1 | Obj2: Type2 | etc.
Ahora el diseño se configura con un par de palabras clave especiales y relaciones actor/receptor. Mi base de datos utiliza una tabla de mensajes se unió en una tabla que contiene ID de usuario, ActionID, receiverid, receiverObjectTypeID,
Aquí es una versión condensada de lo que se verá como una vez unido:
News_ID | User_ID | Message | Timestamp
2643 A %a commented on %o's new %r. SomeTimestamp
2644 B %a added a new %r to [his/her] profile. SomeTimestamp
% a = User_ID de la persona que realiza la acción
% r = el objeto receptor
% o = el propietario del objeto receptor (por ejemplo, el propietario del álbum) (NULL si% r es un usuario)
Preguntas:
Es esta una manera inteligente (eficiencia/escalable) para seguir adelante?
¿Cómo puedo almacenar una "Vista previa del evento"? Por ejemplo, si quiero mostrar el comentario que User_A hizo a User_B (como arriba, y en el feed de noticias de Facebook). He considerado utilizar una copia codificada de solo los datos relevantes ... por ejemplo, codificación JSON del texto del comentario o foto html ... pero parece frágil (el usuario puede eliminar la foto mientras está todavía en el feed de otros usuarios)
¿Cómo puedo mostrar mensajes como: "User_B agregó 4 nuevas fotos a su perfil ". con miniaturas de las fotos?
Gracias tom, estoy comenzando a investigar NoSql según sus sugerencias. ¿Hay algún artículo u otro recurso que pueda ser útil para comprender/implementar dicha estrategia? Además, ¿tendré que reestructurar la base de datos relacional existente para acomodar la recuperación de NoSql? – pws5068
Tengo algunos marcadores en http://delicious.com/yerfatma/nosql - el último en la lista dice ser "lectura obligatoria NoSQL". La base de datos y la tienda nosql son dos cosas separadas. No necesitan conocerse el uno al otro en absoluto. La idea es que saque sus datos del DB lo más pocas veces posible; una vez que tenga los datos en código PHP, colóquelos en la tienda nosql para que pueda recuperarlos desde allí hasta que se invaliden. – Tom
Esto está mucho más claro ahora, continuaré mi investigación. Gracias por tu ayuda – pws5068