Tom: Mehrere Lösungswege eines Threads zulassen

Beitrag lesen

Hello,

Mein Problem ist aber, wenn ich dieses Vorhaben umsetzte, ich weiß nicht wie ich die Datensätze Bearbeiten kann. Sprich ein User geht in sein Profil bearbeitet seine Sprachen, klickt auf speichern, was passiert dann? Lösche ich erst ALLE Datensätze von diesem User und schreibe alle neu, was wohl die einfachste Möglichkeit ist oder prüfe ich, welcher Datensatz neu bzw. weg gefallen sind?

Du hast drei Tabellen:

User                User_Sprache                 Sprache
----                ------------                 -------
ID                  ID_USER                      ID
UPDATE_COUNT        ID_SPRACHE                   UPDATE_COUNT
...                 UPDATE_COUNT                 ...
                    ON_OFF

Die Tabelle User_Sprache _kann eine eigene ID haben, muss sie aber nicht mehr, da Du ohnehin einen Unique Index über die Spalten ID_USER + ID_SPRACHE legen wirst, der Datensatz damit also eineindeutig (sic) identifiziert werden kann.

Wenn Du nun die Userdaten zur Bearbeitung (Anzeige) aufbereitest, dann holst Du dir die Daten aus der Tabelle User, holst Dir die die zugehörigen Daten aus der Tabelle User_Sprache und _alle_ Datensätze aus der Tabelle Sprache.

Die beiden Ergebnisse aus Sprache und User_Sprache musst Du noch gegeneinander abgleichen. Angezeigt werden alle Sprachen, aber nur diejenigen, für die es auch einen Datensatz und damit einen Wert für ON_OFF gibt, wurden bisher vom User bearbeitet, gewählt oder abgewählt. Alle Datensätze aus Sprache, die in User_Sprache keinen Partner finden, sind seit der letzten Bearbeitung durch den User hinzu gekommen.

Man kann die Teilergebnisse des (HTML-)Formulares, das Du erfinden musst, nun mittels Joins schon von der Datenbank vorbereiten lassen, oder aber diese Aufgabe in PHP erledigen.

Du musst Die jedenfalls einen Formulartyp bastelen, der

+--------------------------------------+
  |          User-Stammdaten             |
  |                                      |
  |                                      |
  |+------------------------------------+|
  ||         Details                    ||
  |+------------------------------------+|
  ||         Details                    ||
  |+------------------------------------+|
  ||         ...                        ||
  |+------------------------------------+|
  +--------------------------------------+

in etwa so aussieht.

Nun ist es Philosphie, ob Du bei Änderungen:

* jeweils das gesamte Formular bestätigst
* Stammdaten und Detaildaten separat aber im Block bestätigst
* Detaildaten einzeln bestätigst

Wie komplex Du das machen willst, hängt von deiner Entwicklungspower ab.
Für den Anfang würde ich immer jede Änderung einzeln vornehmen.
Wenn im Detailbereich nun plötzlich Sprachen auftauchen, zu denen der User sich npch nicht geäußert hat, muss Du das auch irgendwie kenntlich machen und auch überlegen, ob er sich um die Entscheidung drücken darf, oder ON oder OFF wählen muss. Wenn er sich drücken darf, musst Du noch entscheiden, ob trotzdem ein Datensatz in User_Sprache angelegt werden soll (mit ON_OFF = NULL) oder ob du das gar nicht registrieren willst, dass der User sich gedrückt hat.

Du siehst: erstmal kommt die Philosophie, dann die Planung, dann die Programmierung.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
Die ultimative Seite für Selbermacher
0 74

Mehrere Werte speichern

Martin_Online
  • php
  1. 0
    Der Martin
    1. 0
      Martin_Online
      1. 0
        Der Martin
        1. 0
          Martin_Online
          1. 0
            Der Martin
            1. 0
              Martin_Online
              1. 0
                Tom
                1. 0
                  Martin_Online
                  1. 0
                    rimi
                2. 0
                  molily
                  1. 1

                    Mehrere Lösungswege eines Threads zulassen

                    Tom
                    • zu diesem forum
                    1. 0
                      Martin_Online
                      1. 0
                        Tom
                        1. 0
                          Martin_Online
                          1. 0
                            Tom
                            1. 0
                              Martin_Online
                              1. 0
                                dedlfix
                                1. 0
                                  Tom
                                  1. 1
                                    dedlfix
                                    1. 0
                                      Tom
                              2. 0
                                Tom
                              3. 0
                                molily
                            2. 0
                              dedlfix
                              1. 0
                                Martin_Online
                                1. 0
                                  Tom
                                2. 0
                                  dedlfix
                              2. 0
                                Tom
                                1. 0
                                  dedlfix
                            3. 0

                              Neuer Ansatz

                              Martin_Online
                              1. 0
                                Martin_Online
                                1. 1
                                  Auge
                                  1. 0
                                    Martin_Online
                                    1. 0
                                      molily
                                      1. 0
                                        Martin_Online
                                        1. 0

                                          Nachtrag

                                          Martin_Online
                                          1. 0
                                            molily
                                          2. 1
                                            Christian Kruse
                                        2. 0
                                          molily
                          2. 0
                            molily
                            1. 0
                              Christian Kruse
                              1. 0

                                Lange nichts gehört

                                Matthias Apsel
                                • menschelei
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Christian Kruse
                                2. 0
                                  Christian Kruse
                                  1. 0
                                    molily
                                    1. 1
                                      Christian Kruse
                                      1. 1
                                        Christian Kruse
                                      2. 0
                                        molily
                                        1. 0
                                          Christian Kruse
                    2. 0

                      Das Streben nach einer angemessenen Lösung

                      molily
            2. 0
              Martin_Online
            3. 0
              Martin_Online
              1. 0
                Der Martin
                1. 0
                  Martin_Online
                  1. 0
                    dedlfix
                    1. 0
                      Martin_Online
                      1. 0
                        dedlfix
                        1. 0
                          Martin_Online
                          1. 0
                            dedlfix
                            1. 0
                              Martin_Online
                              1. 0
                                dedlfix
                                1. 0
                                  Martin_Online
                                2. 0
                                  molily
                                  1. 1
                                    dedlfix
                                    1. 0
                                      molily
                                      1. 0
                                        dedlfix
                                      2. 1
                                        Christian Kruse
  2. 0
    dedlfix
  3. 0
    molily
    1. 0
      Martin_Online
      1. 0
        molily
  4. 0
    Martin_Online
  5. 0
    hotti