gabebu
Goto Top

MySQL auffrischung: klassiche Fremdschlüssel-Situation

Hallo Zusammen

Ich bin gerade nebenbei wieder mal daran, meine SQL-Kentnisse aufzufrischen. Ich habe dabei eine kleine klassiche Datenbank angelegt:
c879e96dc3a1426506f5d8fc20d586c1

Dazu habe ich versucht möglichst 1 zu 1 dies in einer SQL-Datenbank darzustellen. Unter anderem habe ich die Nutzer-Tabelle angelegt und habe da ein kleines Verständnisproblem.

Und zwar möchte ich natürlich, dass jeder Benutzer nur eine Anrede besitzt, komischerweise erhält aber jeder Eintrag in die Nutzer-Tabelle einen "Herr" und einen "Frau"-Eintrag und ich verstehe nicht ganz warum. Ich werde euch die Datenbank per Dropbox freigeben, dann könnt ihr euch die gleich auch mal ansehen:

https://www.dropbox.com/s/f7w6nh5p8123se9/ueb.sql

Was habe ich hier für ein Denkfehler gemacht? Ich komme wirklich nicht drauf, vermutlich ist es etwas kleines simples...aber ja.

Danke für eure Antworten.

Gruss

Gabriel

Content-Key: 229260

Url: https://administrator.de/contentid/229260

Printed on: April 20, 2024 at 02:04 o'clock

Member: SlainteMhath
SlainteMhath Feb 10, 2014 at 13:13:37 (UTC)
Goto Top
Moin,

in der Anderetabelle brauchst du ein ID-Feld und ein Textfeld,...

ID    Anrede
1     Herr
 2    Frau

und nicht ein separates Feld Herr und Frau.

lg,
Slainte
Member: gabeBU
gabeBU Feb 10, 2014 updated at 13:34:44 (UTC)
Goto Top
Also du meinst ungefähr so:

create table anrede values (id int not null, anrede tinytext(4));

und dann einfach bei jedem Eintrag in die Nutzertabelle "Herr" und "Frau" definieren oder wie kann ich das verstehen?

Edit: *facepalm* ach klar natürlich. Ja stimmt werde ich gleich korrigieren :3.
Member: SlainteMhath
SlainteMhath Feb 10, 2014 at 13:35:48 (UTC)
Goto Top
Die Anrede-Tabelle ist richtig.
Aber in der Nutzertabelle brauchst du dann natuerlich keine extra Felder für Herr und Frau sondern verknüpfst die beiden Tabellen über das Feld Anrede_AID - Feld

etwa
SELECT N.*, A.* FROM Nutzer N 
JOIN Anrede A ON A.AID = N.Anrede_AID 

(Kann sein das die Syntax nicht 100%ig ist, hatte schon lange kein MySQL mehr in den Fingern face-smile )
Member: gabeBU
gabeBU Feb 10, 2014 at 13:38:53 (UTC)
Goto Top
Das müsste ich eigentlich mit dem Foreign Key gemacht haben, ich gebe bei der Eingabe nur die AID an.