MrSpoocy: Normalisierung wie sollte aus aussehen ?

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

  1. 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

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".