Datenbank für Single-WebSite

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenbank für Single-WebSite

    Hallo,
    ich wollte eine "Single-WebSite" erstellen um mein können zu erweitern.
    Aber da stellt sich nun die erste Frage.
    Wie definier ich eine Tabelle in SQL mit allen User IDs, deren ganzen Freunde, Punkten und so.

    Hoffe jemand weiß ohne weitere lange beschreibung was ich brauche bzw. wie ich das anstelle.

    Falls nicht schreibe ich gern eine längere beschreibugn und schilderung des Problems.

    Danke!

  • #2
    normalisierung <--- oder wie das heisst ^^

    http://de.wikipedia.org/wiki/Normali...28Datenbank%29

    Kommentar


    • #3
      lol ... wenn du nicht mal weißt wie du anfangen sollst, fehlen dir schlichtweg Grundlagen. Kauf dir ein Buch oder lies Tutorials (oder bezahl jemanden dafür, dass er dir das programmier).

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Man versteht mich wohl falsch.
        Also ich habe meine Tabelle und in der Habe ich z.B. 10 UserIDs
        Jede UserID hat die Struktur:

        --id(int)--Benutzername--Email--Passwort--PUNKTE--Freunde

        So, nun hat der User sagen wir mal 5 Freunde.
        Wie packe ich nun 5 Freunde in die Tabelle?
        Das ist meine Frage.
        Einfach alle Freunde mit Trennzeichen in "Freunde" speichern und so jedes mal auslesen? Neee...

        Also wie am besten?
        Danke für jeden Tipp (evtl. Tut?)

        Kommentar


        • #5
          Man versteht dich schon richtig. Normalisierung war dein Stichwort.

          http://www.little-idiot.de/mysql/mysql-253.html
          ich glaube

          Kommentar


          • #6
            Das Thema "Normalisierung" scheint sehr groß und kompliziert zu sein wie ich sehe Oo
            Das dauert erstmal bis ich aus den ellen langen Texten was rausfiltern kann^^ Danke für den Tipp

            Kommentar


            • #7
              Sehe ich es richtig das eine Normalisierungsart wie folgt funktioniert:
              Um mehrer Freund nun anhand des unten gegebenen beispieles hinzuzufügen werde ich mehrere Zeilen mit der SELBEN ID anlegen und lasse dann alle Match's raussucht mit z.B. der ID "5" ?

              Beispiel
              id(int)--Name--Email--Passwort--Freunde
              ________________________________
              0001....Ich1.....Mail1..PW1..........Franz
              0001....NULL...NULL...NULL.........Karl
              0002....Ich2.....Mail2..PW2..........Heinz
              0001....NULL....NULL..NULL.........Sebastian

              Das heißt ich lasse nun sql sämtliche Datensätze wie blöde durchratten und alle einträge mit ID "0001" finden und raus kommt dann:
              0001 = Ich1 = Mail1 = PW1 = Franz,Karl,Sebastian

              ???

              Kommentar


              • #8
                Nein. Du sollst eine einzelne Tabelle für die Freunde anlegen mit Userid - Freundid.

                Hier ist noch ein Link, da wird es am anschaulichsten erklärt:

                http://www.peterkropff.de/site/mysql/normalisierung.htm
                ich glaube

                Kommentar


                • #9
                  Das sieht mir nach ner missglückten 1. Normalform aus...

                  Kommentar


                  • #10
                    Ah...
                    Das tut war sehr gut, danke.
                    Hab das nun durch.
                    Das heißt ich erstelle mehrere Tabellen.

                    Beispiel:
                    ID........Name.....Email.....PW.......Freund
                    0001...Ich1........Mail1.....PW1.....Karl
                    0002...Ich2........Mail2.....PW2.....Klaus
                    0001...NULL.......NULL......NULL....Marcel

                    Würde geändert werden in ... öhm ... 4 verschiedene Tabellen richtig?
                    "Name" / "Email" / "PW" / "Freund"

                    Etwa so:
                    Tabelle1 (Name):
                    0001...Ich1
                    0002...Ich2

                    Tabelle2 (Email):
                    0001...Mail1
                    0002...Mail2

                    Tabelle3 (PW):
                    0001...PW1
                    0002...PW2

                    Tabelle4 (Freund):
                    0001...Karl
                    0002...Klaus
                    0001...Marcel


                    Müsste so richtig sein...
                    Aber mit welchem befehl bekomme ich nun alle Informationen von z.B.
                    "Tabelle1 ID=0001" ?¿?
                    Und sucht er gleich in Tabelle4 ALLE Freunde raus?
                    Hat jemand ein BEispiel?

                    Kommentar


                    • #11
                      Ähm - also, der Wille ist jedenfalls da

                      Das wäre jetzt gnadenlos übernormalisiert, und außerdem nicht richtig.

                      Du versuchst jetzt einfach, alle Werte in einzelne Tabellen zu packen. Was zusammen gehört, muss aber in einer bleiben. (Siehe Peters Seite, 2. Normalform, 3. Denormalisierung)

                      Zusammen gehört in Deinem Beispiel userid, name, email und passwort.

                      Dann brauchst du noch eine Tabelle für die Freundzuordnungen, da stehen dann die beiden User-Ids drin. Also, ein Eintrag mit deiner ID und der von Karl, und ein Eintrag mit deiner ID und der von Marcel.

                      Zum Abfragen brauchst du dann einen Join, dafür wirst du genug Beispiele finden.
                      ich glaube

                      Kommentar


                      • #12
                        Original geschrieben von ministry
                        Ähm - also, der Wille ist jedenfalls da

                        Das wäre jetzt gnadenlos übernormalisiert, und außerdem nicht richtig.

                        Du versuchst jetzt einfach, alle Werte in einzelne Tabellen zu packen. Was zusammen gehört, muss aber in einer bleiben. (Siehe Peters Seite, 2. Normalform, 3. Denormalisierung)

                        Zusammen gehört in Deinem Beispiel userid, name, email und passwort.

                        Dann brauchst du noch eine Tabelle für die Freundzuordnungen, da stehen dann die beiden User-Ids drin. Also, ein Eintrag mit deiner ID und der von Karl, und ein Eintrag mit deiner ID und der von Marcel.

                        Zum Abfragen brauchst du dann einen Join, dafür wirst du genug Beispiele finden.
                        Ja, da hast du natürlich vollkommen recht.
                        Da hab ich mich "zu sehr" angestrengt und den Wald vor lauter Bäumen nicht gesehen ^^

                        Sprich es wäre dann so:

                        Tabelle1:
                        ID........Name.....Email.....PW
                        0001...Ich1........Mail1.....PW1
                        0002...Ich2........Mail2.....PW2

                        Tabelle2:
                        ID........Freund
                        0001....Karl
                        0002....Klaus
                        0001....Marcel

                        richtig?

                        Kommentar


                        • #13
                          Ja, fast. Ich bin jetzt mal davon ausgegangen, dass die Freunde ebenfalls bei dir angemeldet sind, dann sollst du in Tabelle 2 beim Freund natürlich seine ID statt seinem Namen abspeichern.
                          ich glaube

                          Kommentar


                          • #14
                            ja ok da hättest du recht.
                            Wären sie auch bei mir angemeldet würde es ja so aussehen:

                            Tabelle1:
                            ID........Name.....Email.....PW
                            0001...Ich1........Mail1.....PW1
                            0002...Karl.........Mail2.....PW2
                            0003...Klaus.......Mail3.....PW3
                            0004...Marcel.....Mail4.....PW4

                            Tabelle2:
                            ID........FreundID
                            0001....0002
                            0002....0004
                            0001....0003
                            etc. etc. etc.

                            richtig? ja denke schon ^^

                            Ich schau mir eben mal die JOIN Syntax an.

                            Kommentar


                            • #15
                              nee, das ist falsch.. eine ID darf nur 1mal vorkommen...

                              Tabelle2:
                              ID........USERID..FRENDID
                              0001....0002.....0005
                              0002....0004.....0002
                              0003....0003.....0004
                              etc. etc. etc.

                              Kommentar

                              Lädt...
                              X