2012-08-08 18 views
5

He estado pensando en un sistema de me gusta para mi sitio web, y no puedo determinar la mejor manera de abordarlo. Estoy usando MySQL, y en este momento, tengo una tabla de actividades, para publicaciones de texto, fotos, videos, etc., y una tabla de comentarios, para comentarios. Puede recibir comentarios y publicaciones de actividad, entonces, ¿cómo debo continuar con las columnas de la tabla similar? Estoy abierto a sugerencias de cambiar todo el esquema para obtener un diseño más coherente.Esquema de la base de datos de un sistema similar

Respuesta

11

Simplemente haga una tabla llamada likes con una estructura como esta:

`id` int(11) NOT NULL AUTO_INCREMENT, 
`userid` int(11) NOT NULL, 
`post_type` varchar(10) NOT NULL, 
`post_id` int(11) NOT NULL, 
`date` datetime NOT NULL, 
PRIMARY KEY (`id`) 

Entonces cada vez que alguien le gusta un puesto de actividad, se insertaría el ID de ese usuario, la post_type como actividad, y luego post_id sería la identificación de la publicación (obviamente).

Si a alguien le gusta un comentario, usted haría lo mismo pero ponga comentario para el tipo de publicación en su lugar.

luego a que los gustos de un puesto de actividad:

SELECT * FROM `likes` WHERE post_id = 'id' AND post_type = 'activity' 

sólo se necesita reemplazar 'id' con la variable de identificación.

Igual sería para los comentarios (excepto que necesitaría cambiar el post_type por supuesto).

Espero que esto te ayude a tener una idea de cómo hacer un sistema similar para tu sitio web :)

+0

¡Gracias! Eso es exactamente lo que estaba pensando hace un par de minutos. – Wiz

+0

@Wiz No hay problema, me alegro de que haya sido útil. :) – Nathan

Cuestiones relacionadas