1149
« en: 15 de Abril 2013, 09:51 »
Tabla prefijo_conteng_rating: contiene 4 campos que son content_id (tipo entero), rating_sum (tipo entero), rating_count (tipo entero) y lastip (tipo varchar de 50 caracteres).
Tabla prefijo_content: contiene numerosos campos como id, introtext, fulltext, etc.
El campo content_id en principio relaciona con el campo id de la tabla content
En zoo en la tabla zoo_rating parece estar almacenado cada voto con su valor en el campo value y relacionado con el item de zoo para el que va el voto que es el item_id. Habría que contar el número de votos que tiene cada item_id y sumar las puntuaciones que tiene para obtener el acumulado, y luego dividir entre el número de votos que tiene para obtener la puntuación. Ahora bien, esa puntuación ya la está mostrando en el frontEnd, entonces supongo que estará almacenada en otra tabla de zoo que habría que buscar (no creo que esté realizando el cálculo a través de código cada vez que se visualiza un item de zoo en el frontEnd).
El campo item_id en principio relaciona con el campo id de la tabla AC_zoo_item
Si quieres realizar ordenaciones eligiendo categoría faltaría por ver en qué tabla de zoo relaciona cada item_id con su categoría. Si no quieres realizar ordenaciones eligiendo categoría no haría falta ver esa relación.
En el código del módulo efectivamente tienes la consulta donde extrae los datos y realiza el cálculo:
$query = "SELECT cc.title AS category, a.id, a.title, DATE_FORMAT(a.created,'%d.%m.%Y') as created,
u.username, a.hits, cc.id as catid, format((r.rating_sum / r.rating_count), 2) as averagerating
...
ORDER BY (r.rating_sum / r.rating_count) desc, rating_count desc";
si te fijas lo que hace es dividir la puntuación acumulada entre el número de votos, por ejemplo si tiene puntuación acumulada 20 y el número de votos es 5 resulta 20/5 = 4 sería su rating y muestra los resultados ordenados en base a la puntuación.
Yo lo primero que miraría sería a ver de dónde extrae la información del rating de zoo en el frontEnd, bien una tabla de la base de datos o bien código si realiza el cálculo (menos probable). Si lo tienes en una tabla, es a partir de ahí de donde puedes extraer la información.