Unterschiedliche Profile in Datenbank speichern

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

  • Unterschiedliche Profile in Datenbank speichern

    Hallo zusammen,

    ich stehe aktuell vor einem nun "Problem". Ich schreibe gerade eine kleine Seite auf der sich Firmen, Dienstleister und Kunden registrieren können.

    Jetzt habe ich eine Tabelle "users" erstellt in dem die gesamten Mitglieder erfasst werden sollen. Jetzt kommt es jedoch zu dem Problem, das Kunden einige Angaben über sich machen können, Dienstleister noch ein paar weitere Felder und Firmen haben hier wieder ganz andere Formularfelder.

    Jetzt war ich bereits am überlegen diese als Spalten in der Datenbank anzulegen, jedoch würde die Tabelle dann weit mehr als 50 Spalten breit werden. Mein 2. Gedanke war nun diese Felder als JSON zu verpacken und in eine Spalte `profile` zu stellen.

    Das Problem ist das in der Detailsuche später genau danach gesucht werden soll. Zum Beispiel soll der Kunde suchen können ob, ein Dienstleister 'Malertätigkeiten' anbietet oder aber 'Handwerkertätigkeiten'.

    In erster Linie geht es mir eben darum das es einige Felder sind wo jeweils nur ein Feld (SELECT FORM) auswählbar ist, jedoch dann auch Checkboxen zu den Tätigkeiten möglich sind.

    Ich frage daher einfach mal Vorsichtig nach wie Ihr sowas lösen würdet da ich nachher ungern feststellen würde das die Idee die ich hatte viel zu langsam wäre.

    Viele Grüße
    Danny

  • #2
    Zitat von CreativDesigner Beitrag anzeigen
    Jetzt war ich bereits am überlegen diese als Spalten in der Datenbank anzulegen, jedoch würde die Tabelle dann weit mehr als 50 Spalten breit werden.
    Das wäre komplett falsch, Beschäftige dich mit Normalisierung, siehe https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

    Kommentar


    • #3
      Zitat von CreativDesigner Beitrag anzeigen
      ....jedoch würde die Tabelle dann weit mehr als 50 Spalten breit werden. ...
      Nicht Spalten, unterschiedliche Tabellen!

      Kommentar


      • #4
        Du brauchst eine Tabelle, in der alle Felder stehen.
        Du brauchst eine Tabelle, in der alle Profiltypen stehen.
        Du brauchst eine Tabelle, in der die Felder den Profiltypen zugeordnet werden (N-zu-M)
        Du brauchst eine Tabelle, in der dem Benutzer pro Feld ein Wert zugeordnet ist (N-zu-M)

        Kommentar


        • #5
          oder etwas simpler, eine Tabelle je Firma, Dienstleister und Kunden.

          Irgend wie muss du ja schon am Anfang identifizieren, ob jemand Kunde oder Firma oder etwas anderes ist.
          Mir fielen da noch andere Varianten ein, alles läuft aber auf Normalisierung und ein anderes Datenbankdesign hinaus.

          Kommentar

          Lädt...
          X