2016-04-26 7 views
1

Ich habe user Tabelle wie folgt aus:mysql Selbst Beziehung mit 2-Feld

id   email 
------------------------- 
    1  [email protected] 

Und menu Tabelle wie folgt aus:

id parent_id user_id name 
----------------------------------- 
    1  NULL  1  tets 

Ich mag würde zu Selbst Beziehung parent_id UND user_id.
Wenn Hacker diesen Datensatz hinzufügen möchten, ignoriert mysql diese Aktion, da user_id nicht Besitzer Elternmenü !!! :

id parent_id user_id name 
----------------------------------- 
    2  1   2  tets 
+0

Wenn jemand einen Datensatz zum Menü mit einer Benutzer-ID hinzufügt, die in der Benutzertabelle nicht vorhanden ist, sollte er nicht hinzugefügt werden. Habe ich deine Anforderung richtig ...? –

+0

@AndrewsBAnthony Ja. 'user_id' Feld in Beziehung mit' user' Tabelle UND 'parent_id' Selbstbeziehung mit' id'. Ich habe ein Problem mit der Selbstbeziehung 'user_id' zu' user_id'. – ops

Antwort

1

1.Erstellen Tabelle Benutzer unter Abfrage mit

create table User(id int primary key,email varchar(30)); 

2.Create Tabelle Menü die unter Abfrage mit

create table Menu(id,int,u_id int,p_id int,name varchar(10),primary key(u_id,p_id), 
    constraint user_fk foreign key(id) references User(id) 
     on delete cascade); 

wenn Sie einen Wert eingeben, ist nicht in der Tabelle Benutzer wird dann unten Fehler

geworfen werden
Cannot add or update a child row: a foreign key constraint fails 
+0

Nicht funktioniert. Getestet mit Fragensätzen. – ops

+0

Könnten Sie bitte einige Probeaufnahmen geben ...? und geben Sie mir die Fehlerdetails –

+0

Verwenden Sie Frage Beispieldatensätze. – ops

Verwandte Themen