Sachen ausgeben für bestimmte User

10/16/2014 22:29 liveplayer64#1
Mahlzeit,
ich bin ein kleiner Neuling in MySQL und bräuchte da ein wenig Hilfe. Also, ich habe eine Home und auf dieser Home werden einige Daten ausgegeben. So, alles so weit so gut. Nun habe ich eine Box wo die Badges ( Kleine .gif Bilder ) für den User ausgegeben werden sollen. Allerdings weiß ich nicht wie ich die Badges die der User besitzt ausgeben soll, so dass es auch die Badges vom User ist.

Für die Badges habe ich die Tabelle user_badges und für die user habe ich die Tabelle users.

users
[Only registered and activated users can see links. Click Here To Register...]

user_badges
[Only registered and activated users can see links. Click Here To Register...]
10/16/2014 23:28 Reav0r#2
Das ist eine n zu n Beziehung, jede Badge kann von n User besessen werden und jeder User kann n Badges besitzen, so weit ich mich erinnere, löst man so etwas am besten mit einer Zwischentabelle (glaub so nennt man das, da bin ich mir nicht sicher) in der die BadgeID und UserID zusammen den Primary Key bilden. Damit lässt sich das ganze dann ganz gut abbilden.
Am besten du schaust dir die n zu n Beziehungen mal genauer an.
10/17/2014 13:19 liveplayer64#3
Quote:
Originally Posted by Reav0r View Post
Das ist eine n zu n Beziehung, jede Badge kann von n User besessen werden und jeder User kann n Badges besitzen, so weit ich mich erinnere, löst man so etwas am besten mit einer Zwischentabelle (glaub so nennt man das, da bin ich mir nicht sicher) in der die BadgeID und UserID zusammen den Primary Key bilden. Damit lässt sich das ganze dann ganz gut abbilden.
Am besten du schaust dir die n zu n Beziehungen mal genauer an.
Danke, werde ich mir mal demnächst anschauen. Wenn mir jemand noch anders helfen kann, nichts gegen deiner Antwort habe mir aber dabei was anderes erhofft, kann mir gerne noch Antworten geben.
10/17/2014 14:26 Syc#4
Du hast doch die Userid von dem User, von dem du die Badges ausgeben möchtest?
Jetzt selectierst du in der user_badges-table einfach nach der userid.

Verstehe nicht ganz, wo das Problem liegt?
10/17/2014 15:09 galaxyo#5
Quote:
Originally Posted by liveplayer64 View Post
Danke, werde ich mir mal demnächst anschauen. Wenn mir jemand noch anders helfen kann, nichts gegen deiner Antwort habe mir aber dabei was anderes erhofft, kann mir gerne noch Antworten geben.
Seine Antwort ist mehr als konstruktiv und dort ist alles gesagt was du wissen musst..

A_User: ID, Username
A_Badges: User_ID, Badge_ID, Badge_Slot

zu

A_User: ID, Username
A_Badges: Badge_ID, Badge_Slot, BadgeSource(Pfad? oder Bild als Binary)
B_UserBadges (B da Untertabelle von A): User_IDd, Badge_ID

Du trägst dann in B_UserBadges ein, welche Badges ein User besitzt. User_ID 1 bestitzt 3 Badges. Also sind in B_UserBadges 3 Zeilen mit User_ID 1 und der BadgeID.

Dann holst du dir aus A_Badges alles was du brauchst, das Bild, den Slot. Fertig. Schau dir JOIN-Statements an, hilft hier. Außerdem Normalisierung von Tabellen. n zu n Beziehung ist auch korrekt. Google hätte dir da auch geholfen, ganz ehrlich.

A_User = Userdaten
A_Badges = Badges
B_UserBadges = A_User ID und A_Badges ID