Verknüpfung Datenbank Tabellen oxratings mit oxreviews

Hallo :slight_smile:

wie sind die Datenbank Tabellen “oxratings” und “oxreviews” miteinander verknüpft?

Gibt es dort eine Verknüpfungstabelle?

Viele Grüße
indianer3c

ich denke mal über oxobjectid

Danke, dann bekomme ich alle Bewertungen zu einem Artikel.
Wenn ich oxobjectid und oxuserid nehme… aber ein Benutzer kann anscheinend mehrere Bewertungen zu einen Artikel abgeben - so richtig eindeutig wird es nicht :frowning:

Ich glaub ein User kann nur eine Bewertung pro Artikel abgeben, aber mehrere Reviews.

Ja, die Funktion allowRating() lässt nur ein Rating (also die Vergabe von Sternchen) zu:

if ( $oDb->getOne( $sSelect ) ) {
            return false;
        }

Okay danke, dann ist die Verknüpfung der beiden Tabelle die oxuserid :slight_smile:

Bsp.


SELECT *
FROM `oxratings`
LEFT JOIN oxreviews ON oxreviews.oxuserid = oxratings.oxuserid

Ich würde da noch ein

..... GROUP BY oxreviews.oxuserid

anhängen. Aber jeder so, wie er mag :slight_smile:

Muss mich korrigieren, die Userid ist nicht ausreichend. Man kann die verknüpfte Bewertung + Text nur sauber über 2 Abfragen ermitteln. Weil OXID an dieser Stelle an der Verknüpfungstabelle spart… Ist alles nicht KISS :frowning:

Nochmal anschließende Frage…

Um zu testen ob die Daten valide sind müsste ich über folgende Abfrage


SELECT count(*) AS Anzahl 
FROM oxreviews, oxratings 
WHERE oxratings.oxuserid = oxreviews.oxuserid 
AND oxreviews.oxobjectid = oxratings.oxobjectid

doch genau die Anzahl der enthaltenen Einträge in der Tabelle oxreviews bekommen oder?