Normalisierung wie sollte aus aussehen ?
MrSpoocy
- datenbank
Hi,
ich stoße oft beim erstellen der Datenbank auf die selbe frage.
Wie und welche der beiden Möglichkeiten ist "besser" um z.b. einen Login zu realisieren, welcher sich aus username + domain zusammen setzt.
table_domains
id | domain
1 | selfhtml.org
2 | google.de
Möglichkeit #1:
table_user
id | fk_domains_id | name
1 | 1 | mrspoocy
2 | 1 | nobody
Möglichkeit #2:
table_user
id | name
1 | mrspoocy
2 | nobody
table_login
fk_domains_id | fk_user_id
1 | 1
Der select dahinter hat als WHERE klausel dann "CONCAT(name,'@',domain).
Bitte begründet auch warum das eine besser als das andere ist.
mfg Spoocy
Moin Moin!
Wie und welche der beiden Möglichkeiten ist "besser" um z.b. einen Login zu realisieren, welcher sich aus username + domain zusammen setzt.
Im Sinne einer Mail-Adresse?
Nicht künstlich zerlegen. Die Mail-Adresse ist der Name des Accounts.
Tabelle User:
id | email | ...
---+-----------------+----
1 | joe@example.com | ...
2 | ben@invalid.tld | ...
3 | me@localhost | ...
Im Sinne einer Anmeldung à la Windows, d.h. Username, Password, Logon-Domain?
Entsprechend Deinem ersten Beispiel. Jeder Account ist eindeutig einer Domain zugeordnet, Accounts ohne Domain oder mit mehreren Domains sind nicht sinnvoll, daher ist eine n:m-Hilfstabelle auch nicht sinnvoll.
Alexander