[SQL] Dynamische Profilfelder (Admin soll das Profil-Formular bestimmen können)

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

  • [SQL] Dynamische Profilfelder (Admin soll das Profil-Formular bestimmen können)

    Moin Leute!

    Mein kleines CMS braucht eine Erweiterung. Admins wollen die Profilfelder selber anlegen/verwalten können - ohne Ahnung von SQL zu haben.

    Leider geht dies nur unschön.

    Ich hatte 2 Ideen:

    1. "Direkt" auf den Tabellen arbeiten (ALTER etc) - sehr gefährlich!

    2. Zwei Tabellen:

    # ProfileStructure
    id
    label
    maxlength
    typ (text-input, textarea)
    status

    # ProfileValues
    id
    userId
    fieldId
    fieldValue

    Ich hoffe ihr erkennt grob was ich meine. Leider ist die Idee noch nicht ausgeklügelt. Welchen Typ sollte ProfileStructure.MaxLength haben? Varchar? Was ist aber, wenn fieldValue einen großen Text beinhalten soll? Ich müsste also alles auf TEXT setzen. Sehr schlecht.

    Wie würdet ihr Multiplechoice einbauen? Ein weiteres Feld mit á la "SelectOptions"?

    Würde mich über ein paar Tipps freuen!

    Gruß
    carapau
    Lasst euch nicht lumpen, hoch den Humpen!

  • #2
    Ich würde jetzt spontan pro Feld-Typ eine Tabellen-Struktur anlegen.
    D.h. eine Tabelle für die Text-Felder, eine für die input-Felder, und zwei für option-Felder, allesamt dann mit einer sort-Spalte versehen, die über alle 3 Tabellen gleichzeitig fortlaufend ist - das Aufbauen des Formulars per PHP ist zwar dann etwas komplizierter, aber dafür ist die Datenbank gut optimiert~
    Für die Werte, die die Benutzer eingeben, dann natürlich entsprechend.

    Warum maxlength vom Typ varchar sein sollte ist mir allerdings vollkommen schleierhaft... ich speichere Zahlen für gewöhnlich in einer Spalte, die auch einen Zahlen-Typ hat.

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

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

    Kommentar


    • #3
      Ich würde anders machen: eine Tabelle für Objekt, eine für Eigenschaft, eine für Werte. Das war's. Damit kann man die Eigenschaft des Objekts beliebig erweitern, ohne die DB-Struktur anzufassen.

      Kommentar


      • #4
        Original geschrieben von asp2php
        Ich würde anders machen: eine Tabelle für Objekt, eine für Eigenschaft, eine für Werte. Das war's. Damit kann man die Eigenschaft des Objekts beliebig erweitern, ohne die DB-Struktur anzufassen.
        hm?
        serialize() und das Objekt in die Tabelle quetschen oder was meinst du?

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

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

        Kommentar


        • #5
          Ich glaube er meinte Element, nicht Objekt.
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Original geschrieben von unset
            Ich glaube er meinte Element, nicht Objekt.
            ja ... du sagst es, thx ... ist schon was spät

            Kommentar


            • #7
              Ich fühle mit dir. Hab jetzt auch schon an die 30 Stunden hinter mir. Ich esse auch grade nur noch, und dann gehts ab in die Falle
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Original geschrieben von ghostgambler
                Warum maxlength vom Typ varchar sein sollte ist mir allerdings vollkommen schleierhaft... ich speichere Zahlen für gewöhnlich in einer Spalte, die auch einen Zahlen-Typ hat. [/B]
                Hatte mich falsch ausgedrückt. Ich meine: da maxlength größer 255 sein kann, "müsste" ich alle auf TEXT setzen.

                Ich lass die Ideen mal wirken und überleg mir morgen mal was - auch ich werd müde (und darf trotzdem noch 5-6 Stunden ran). :/
                Lasst euch nicht lumpen, hoch den Humpen!

                Kommentar


                • #9
                  Ich weiß ja nicht, ob ich jetzt derjenige in, der nicht versteht oder die Problematik noch nicht ganz durchgesickert ist, aber wie soll man - vernünftig - verschiedene Datentypen, in einer Tabelle unter bringen?
                  Wenn ich ein input, ein text und ein option-Feld hab, dann kann ich doch die Werte nicht praktisch in einer Tabelle unter bringen oO

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

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

                  Kommentar


                  • #10
                    Original geschrieben von ghostgambler
                    Ich weiß ja nicht, ob ich jetzt derjenige in, der nicht versteht oder die Problematik noch nicht ganz durchgesickert ist, aber wie soll man - vernünftig - verschiedene Datentypen, in einer Tabelle unter bringen?
                    Wenn ich ein input, ein text und ein option-Feld hab, dann kann ich doch die Werte nicht praktisch in einer Tabelle unter bringen oO
                    Genau das ist das Problem... wollte nur so wenig Tabellen wie möglich. Naja, da werd ich wohl für jeden Typen eine eigene erstellen müssen.
                    Lasst euch nicht lumpen, hoch den Humpen!

                    Kommentar

                    Lädt...
                    X