kostenloser Webspace werbefrei: lima-city


Bewertungs-Button // MySQL

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g********e

    Hey Leute,
    hab mal noch eine Frage, und zwar dies mal zu MySQL.
    Ich würde gerne den Zukünftigen Besuchern meiner Seite die Möglichkeit geben, Sachen mit Sternen zu Bewerten. Nur leider harkt es ein bisschen in der Umsetzung. Also was heißt ein bisschen, ich kann mir noch fast gar nicht vorstellen wie so was umgesetzt wird.

    Ich versuche jetzt einfach mal das ganze in Worten umzusetzen:
    Ich habe eine Tabelle wo Getränke aufgelistet sind, jedes Getränk kann man von 1 bis 5 Sterne bewerten. Desto besser dieses Getränk bewährtet wurde, desto höher steht das Getränk in der Liste. Die Bewertung soll mit der ID des Users gespeichert werden, so das der User jeder Zeit die Möglichkeit hat, seine Bewertung rückgängig zu machen. Der User soll auch die Möglichkeit haben, ein Getränk hinzuzufügen.

    Also das wahr es eigentlich schon. Mit PHP kann ich gut umgehen, nur bei mir harkt es noch ein bisschen MySQL anzuwenden.

    Villeicht kann mir ja einer sagen wie man so was umsetzt, man kann ja jedem Getränk eine eigene Tabelle machen, oder so?? :confused:


    LG
    Giga-Score
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du machst einfach eine Tabelle für die Getränke, soweit so logisch.
    Dann machst du, ganz klar, eine Tabelle für die Benutzer.

    Zu guter Letzt brauchst du dann noch eine Zwischentabelle für die Bewertungen.
    Diese beinhaltet die UserID (als Fremdschlüssel), die GetränkeID (ebenfalls Fremschlüssel), und die Anzahl der Vergebenen Sterne.

    mfg
  4. Autor dieses Themas

    g********e

    syberpsace schrieb:
    Du machst einfach eine Tabelle für die Getränke, soweit so logisch.
    Dann machst du, ganz klar, eine Tabelle für die Benutzer.

    Zu guter Letzt brauchst du dann noch eine Zwischentabelle für die Bewertungen.
    Diese beinhaltet die UserID (als Fremdschlüssel), die GetränkeID (ebenfalls Fremschlüssel), und die Anzahl der Vergebenen Sterne.

    mfg


    also ich erstelle jetzt eine Tabelle mit dem namen "Getränke", wo ich dann zwei Spalten mit ein mal dem "Namen", und ein mal der "ID" des Getränks.

    Eine Tabelle für die Benutzer? Was meinst du damit, die Tabelle die ich eh schon habe wo die User gespeichert sind? Also die PW's und so?

    Also dann muss ich noch eine Tabelle mit dem Namen "Bewertungen", dort mach ich das die "UserID" und "GetränkeID" und noch 5 Spalten mit den Sternen (1 Stern, 2 Stern, 3 Stern, 4 Stern, 5 Stern). Nur was zur hölle sind Fremdschlüssel? >_<

    LG
    Giga-Score
  5. Fremdschlüssel

    Und nein, du brauchst nur eine Spalte für die Sterne, in die du dann den jeweiligen Wert (1-5) einträgst.

    mfg
  6. g****e

    Ich glaube hier ist eine Sache ganz bitter nötig: Paint!
    Wenn du Probleme mit der Organisation von bestimmten Komponenten hast, dann tun Malprogramme wie Paint einen grandiosen Job! Kein aufwändiges Programm wie Photoshop oder GIMP, die versagen hier, du brauchst da tatsächlich Paint.

    Folgendes: Du malst dir erstmal die Usertabelle. Das sind deine User. Meinetwegen auch nen Eimer, dadrin verwaltest du die User. Und dann malst du dir noch einen Eimer, oder Kreis, und darin verwaltest du deine Getränke. Was du jetzt möchtest ist ein Bewertungssystem. Ok, das steckt so zum Teil in den Usern drinne, weil es mit denen ganz gerne Verknüpft sien soll, dass jeder nur einmal kann, es steckt aber doch auch in den Getränken, wie er da was bewertet hat. Ein sowohl als auch gibt es nicht, doch da es dazwischen steckt, malst du einen neuen Kreis, der dein Bewertungssystem repräsentiert. Du kannst ein neues Feature nur IN einen Kreis oder Eimer malen, wenn es EINDEUTIG zu einem Kreis oder Eimer gehört. Dieses gehört aber nicht EINDEUTIG zu EINEM, sondern gehört zu zweien, darum muss ein neuer Kreis gemalt werden. In diesem neuen Kreis sollen nun folgende Daten zu finden sein:
    eindeutige Useridentifikation | eindeutige Getränkeidentifikation | Bewertung
    So, die eindeutige Useridentifikation ist die ID des Users. Die eindeutige Getränkeidentifikation ist die GetränkeID. Das sind 2 Pfeile, die von der jeweiligen Blase, Kugel, Eimer in deine neue Kugel rein gehen. Diese Schlüssel müssen verbunden sein, das heißt, was in Tabelle "Users" als ID steht, muss auch in Tabelle "Bewertungssystem" stehen. Geht man hier weiter, kann man FOREIGN KEYS benutzen, das sind logische Verknüpfungen von Datensätzen über Tabellen hinweg, die Fremdkeys. Damit machst du dem System klar, was woher kommt. Ist kein muss, du kannst es auch selbst handhaben, ist aber ein nettes Feature der InnoDB Engine von MySQL. Zurück: Wir haben nun klargestellt, was die UserID und die GetränkeID zu sein hat, und nun kommt die Bewertung. Hier schreiben wir eine Zahl rein, zwischen 1 und 5. Diese lassen sich leichter für einen Durchschnitt zusammenzählen, als wenn man versucht die Felder boolsch auszuwerten.

    Ich hoffe das Konzept welches ich vorgeschlagen habe ist klar geworden, und ich hoffe, dass auch die Methodik, also das "wie rangehen" klar geworden ist. Es ist vllt "unprofessionell", wenn man sich hinsetzt und blöde Kreise mit Pfeilen malt, ein wenig Kritzeltext daran, doch wenn man hier ein paar Regeln beachtet, wie eben diese, dass wenn ein Feature nicht eindeutig zuordbar ist, ein neuer Kreis her muss, dann kann das sehr bei Planungen von Software helfen :)

    Liebe Grüße
  7. Autor dieses Themas

    g********e

    ich hatte das eben auch schon mit einem Papier versucht ^^ bin aber nicht drauf gekommen so gesagt noch einen Dritten Kreis :'D

    danke ^^ hast was bei mir gut ;D

    LG
    Giga-Score
  8. Vielleicht auch noch ein Bild des Getränkes... Würde mir bei der Wiedererkennung helfen :))
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!