MySQL: Tabellen zusammenfassen

Superior8881

Grünschnabel
Hallo!

Ich speichere grundsätzliche Userdaten in einer user Tabelle.
In diese Tabelle kommen alle Daten die sich grundsätzlich nicht ändern würden,
wie zum Beispiel: id, register_timestamp, status_id

Außerdem habe ich drei weitere Tabellen in denen Userdaten sind, die aktualisiert werden könnten,
wie zum Beispiel: name, password, email

Der jeweilige aktuelle Eintrag bekommt immer den neusten timestamp.
So kann man beispielweise erkennen wie ein user hieß bevor er sich umbenannt hat.

Da ich dieses Vorgehen, wie gesagt, bei drei Benutzerdaten habe, habe ich auch drei Tabellen angelegt in denen die jeweiligen Einträge
untereinander eingetragen werden. Die Tabellen sind user_name, user_password und user_email.
Der jeweilige Key ist die id aus user.id

Wäre es nicht auch sinnvoll diese drei Tabellen zu einer Tabelle zusammen zu führen.
Ich könnte dann ja beispielweise der Tabelle user_data eine weitere Spalte hinzufügen in der ich
beispielweise eine type_id zuordne in der ich zwischen den drei Werten unterscheide.

type_id = 1 - name
type_id = 2 - passwort
type_id = 3 - email

Einerseits würde ich mir so zwei Tabellen ersparen, aberer Seits wäre die Übersicht natürlich nicht so schön!

Vielen Dank für Eure Hilfe.
 

Zvoni

Erfahrenes Mitglied
Meine Meinung:
Prinzipiell gehören die drei genannten Felder in eine Tabelle (was glaube ich sogar in der Normalform beschrieben ist: Was zusammengehört, gehört zusammen!)
Mit folgenden Kriterien:
UserName: UNIQUE, Nicht veränderbar (!) (Wobei ich aber Forume kenne, welche das zulassen. Halte ich aber für nicht gut)
UserEMail: UNIQUE (wobei in den meisten mir bekannten Fällen ist sogar die E-Mail nicht veränderbar)

Die beiden Felder dürfen nicht zusammen/kombiniert UNIQUE sein!

Ein Historie für irgendwelche Änderungen in diesem Kontext halte ich für Unfug, weil ganz ehrlich: Wen interessiert es, welche E-Mail_Adresse ich vor nem Jahr benutzt habe.
Eine Historie das Passwortes ist eh schon ein ganz grosses "NO-GO!"
 

Yaslaw

alter Rempler
Moderator
UserEMail: UNIQUE (wobei in den meisten mir bekannten Fällen ist sogar die E-Mail nicht veränderbar)
Schlechte Idee. Ich habe zum Beispiel alleine auf der Arbeit in den letzten 5 Jahren 4 malMailadressenänderungen mitgemacht. unique - ja, unveränderbar - nein.
 
Zuletzt bearbeitet:

Zvoni

Erfahrenes Mitglied
Yaslaw,
deswegen habe ich im Gegensatz zum Usernamen eben nicht „unveränderlich„ dazugeschrieben.
ich habs nur eben erlebt, dass eine einmal angegebene Mail-Adresse nicht mehr geändert werden konnte
 

Superior8881

Grünschnabel
Okay, danke erst einmal für Eure Antworten.
Ich werde noch mal ein bischen darüber nachdenken-> Also irgendwie gehören die Daten ja zusammen, warum nicht in einer Tabelle mit unterschiedlichen Zuordnungen.

Warum ist das speichern der letzten Passwörter ein NoGo?