Auge: Gedankenkonflikt zwischen UPDATE und INSERT bei einer MYSQL-DB

Beitrag lesen

Hallo

Ich möchte den Usern aber selbst überlassen, was sie angeben wollen und was nicht.

Das heißt aber folgendes:
Entweder ich löse es so das sie beim updaten Ihres Profils überprüft wird, ist folgende Information für den User schon vorhanden? Falls ja - update und falls nein, insert, ...

Dafür gibt es eigentlich das INSERT-Statement INSERT ... ON DUPLICATE KEY UPDATE. Eine auf UNIQUE gesetzte Spalte wird als Vergleich herangezogen, existiert der dazugehörige Wert des Statements in der Tabelle, wird die betreffende Zeile aktualisiert (UPDATE), sonst wird eine neue Zeile eingefügt. In deinem Beispiel müsste das die userid in Kombination mit der infoid in der Tabelle iser_info sein (UNIQUE über beide! Spalten).

Wird ein Wert gelöscht, würde ich ihn einfach als Leerstring speichern. Damit bleibt zwar die Zeile (nur noch mit userid und infoid) in der DB, aber du kommst regelmäßig mit einem Query aus, da es immer nur INSERT ... ON DUPLICATE KEY UPDATE gibt. Die könnte man mit einem Extra-Statement mit einer gewissen Regelmäßigkeit entsorgen (z.B. als Admin händisch angefordert oder mit Cronjob).

Oder ich mache es so das bei der Registrierung - alle Felder angelegt werden, für jede Information und diese solange leer bleiben, bis der User sie updatet.

Das wäre die andere Möglichkeit, aber gesetzt den Fall, dass nur wenige deiner User nur wenige Infos raus rücken, hast du jede Menge halbleerer Zeilen in der DB.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
Veranstaltungsdatenbank Vdb 0.3