Problem beim designen einer Tabelle für Login

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

  • Problem beim designen einer Tabelle für Login

    Hallo zusammen!
    Ich möchte eine User-Tabelle für einen Loginbereich erstellen und habe nun ein Problem beim designen der Tabelle. Ich möchte keine vorgefertigten Script-Schnipsel verwenden, sondern mir ein eigenes Script erstellen. Habe mir mehrere Tutorials angesehen aber irgendwie noch kein passendes gefunden.

    Ich habe ungefähr folgendes geplant:

    Ich möchte auf meiner bereits bestehenden PHP-Seite ein dynamisches Menü anzeigen lassen, je nachdem welcher User sich einloggt.


    Tabelle1-Name: user
    Spalten: user_id, name, vorname, username, kennwort(MD5), zugriff, seiten_id(aus Tabelle2)

    Tabelle2-Name: webseiten
    Spalten: seiten_id, seitenname

    Ist es möglich das ich in einer Spalte mehrere Werte speichere? An obigem Beispiel z.B. die seiten_id's aus Tabelle2 in
    der Spalte seiten_id in Tabelle1? Ein User soll ja Zugriff auf mehrere Seiten haben. Welchen Feldtyp muss ich dazu verwenden?

  • #2
    Re: Problem beim designen einer Tabelle für Login

    Original geschrieben von golfer69
    Ist es möglich das ich in einer Spalte mehrere Werte speichere?
    Möglich ja, vernünftig in den allermeisten Fällen nein.

    Stichwort: Normalisierung.

    Extra Tabelle anlegen, mit User-ID und Seiten-ID.
    Pro User und "erlaubter" Seite ein Datensatz.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Vorschlag:

      Tabelle1-Name: user
      Spalten: user_id, name, vorname, username, kennwort(MD5), zugriff

      Tabelle2-Name: webseiten
      Spalten: user_id, seiten_id, seitenname

      In Tabelle webseiten hast du dann pro user mehrere Einträge.


      mit einem

      select seiten_id....
      from user u,
      webseiten w
      where u.user_id = w.user_id

      hast du dann deine gewünschte information

      Kommentar


      • #4
        Hallo.

        So wie ich dich verstanden habe, möchtest du für jeden User eine Liste mit seiten anzeigen, die dieser USer nutzen darf.
        Damit dies klappt habt ihr euch für 2 tabellen entschieden.
        Ich halte dies jedoch für recht kompliziert.
        Mein Vorschlag wäre es eine Tabelle mit Usern anzulegen und eine Tabelle mit Rängen.
        Die Ränge passt du individuell an, und musst so nicht jeden user neu überlegen sondern teilst ihm einen rang zu. IN die Tabelkle käme dann rang id und die Seiten. In die Usertabelle musst du dannnur noch ein feld für die Rangid einsetzen.

        Hoffentlich verstanden ?!?
        Lennie
        Webdesign und Webentwicklung - Plunix.de

        Kommentar


        • #5
          Leuchtet mir ein. Danke.
          Hab aber noch ne Frage:
          Wenn ich im Adminbereich ne Seite zum anlegen der User erstelle und mit z.B. mit Checkboxen die Seiten auswähle auf die der User Zugriff haben soll, wie funktioniert das dann mit dem INSERT INTO?
          Ich meine wenn ich mit Formularfeldern den Usernamen eingebe und 20 Checkboxen habe (für die vorhandenen Web-Seiten), wie kann ich dann alle Werte in die DB eintragen?
          Die seiten_id lass ich mit auto_increment erstellen. Wird dann Pro user_id ein neuer Datensatz erstellt?

          Etwa so:

          Tabelle seiten:
          seiten_id:--------------user_id:
          1--------------------------1
          1--------------------------2
          1--------------------------5

          2--------------------------1
          2--------------------------3
          2--------------------------4

          Kommentar


          • #6
            Original geschrieben von golfer69
            Die seiten_id lass ich mit auto_increment erstellen.
            Wir sind doch beim Anlegen eines neuen Users - also wieso willst du an dem Punkt Seiten erstellen? Die Seiten gibt es bereits.
            Wird dann Pro user_id ein neuer Datensatz erstellt?
            Pro Seite, die der Nutzer sehen darf, ein neuer Datensatz User-ID - Seiten-ID.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Indem Du alle Checkboxen durchgehst und, falls gesetzt ein "Insert into ...." absetzt.

              Kommentar


              • #8
                Vielen Dank für eure Antworten. Habs so gemacht wie Manfred_ST es beschrieben hat. Funktioniert prima...

                Kommentar

                Lädt...
                X