Mysql Beziehungen mit phpMyAdmin

  • Guten Tag


    Ich bin mir nicht sicher ob dies der richtige Bereich ist...


    Ich bräuchte einmal eure Hilfe bezüglich Beziehungen in SQL via phpMyAdmin.
    Meine Datenbank bezieht sich auf SAMP, falls Beziehungen unnötig oder störend sind dann hat sich das eigentlich erledigt.


    Und zwar habe ich als Beispiel 2 Datenbanken: Tankstellen und User.
    In der Tabelle user wird halt alles mögliche vom User gespeichert. in der Tabelle Tankstellen wird alles mögliche zu der jeweiligen Tankstelle gespeichert, zum Beispiel der Besitzer der Tankstelle.


    Ich möchte nun eine Beziehung zwischen 2 Tabellen hinzufügen. Und zwar soll sich der Besitzer auf den Primär Schlüssel der User (Nickname) beziehen.
    Dies soll bewirken das ich den besitzer jederzeit löschen kann, jedoch nicht den User, falls dieser irgentwo als Besitzer steht, zumindest nicht ohne ihn vorher als Besitzer zu löschen.


    Das erste was ich mich frage: Wie müssen die Beziehnung eigentlich genau gemacht werden. ich kenne mich da nicht so super aus.
    Die nächste Frage wäre dann: ist es möglich, das wenn ich den User lösche und dieser als Besitzer einer Tanke eingetragen ist und sich somit auf den Primary vom User bezieht, dass ich dann den Wert vom Besitzer auf einen bestimmten Wert setze?


    Ich hoffe ihr habt verstanden was ich meine und könnt mir helfen.


    Liebe Grüße

  • Primary Key bei einenm Benutzernamen ist nicht optimal, mach es mit einer ID, weil dann kannst du auch den Benutzer ohne Bedenken umbennen und der Owner switcht bei der Tankstelle mit.


    EDIT: Wie schon erklärt, funktioniert das mit primary key und foreign key.

  • ja ich kann den primärschlüssel als id benutzen aber was hier wichtig ist sind die Beziehungen also die Fremdschlüssel.
    Wie genau muss ich das in phpMyAdmin machen mit den Fremdschlüsseln und ist das sinnvoll?


    Wie gesagt soll das bewirken, das ich nicht einfach einen User löschen kann, wenn dessen Name als Besitzer in einer anderen Tabelle steht und die Spalte Besitzer einen Fremdschlüssel hat die auf den Primary Key zeigt (In meinem fall dann auch der Nickname). Ich kann das ganze nun auch mit einer ID machen wäre im Prinzip das selbe in grün.


    Worauf ich eigentlich hinausmöchte: Wenn User B gelöscht wird und ihm gehörte die Tankstelle A, soll der Besitzer von Tankstelle A gelöscht, bzw auf den Standardwert zurückgesetzt werden. Dies wollte ich mit einem Fremdschlüssel realisieren, da dieser ja dazu da ist, das man nicht Daten löscht, die an anderer Stelle noch gültig sind. In diesem fall würde jemand als Besitzer in Tankstelle A stehen, diesen Besitzer gibt es aber gar nicht mehr weil der aus einer anderen Tablle und zwar der der User gelöscht wurde.