2016-11-03 3 views
1

Kann ich zwei Fremdschlüssel in derselben Tabelle haben, die auf eine andere Tabelle namens profil (selbe) verweisen?2 Fremdschlüssel, die auf dieselbe Tabelle verweisen

mein Tisch MailSent ist, es enthält: Primärschlüssel (Id), Datum, foreignkey1 (profil_sender), foreignkey2 (profil_receiver)

Antwort

1

hinzufügen Fremdschlüssel (profil_sender_id, profil_receiver_id) zu einer vorhandenen Tabelle (MailSent), befolgen Sie die folgenden Schritte aus:

ALTER TABLE MailSent ADD CONSTRAINT fk_profile_sender_id FOREIGN KEY (profil_sender_id) REFERENCES TABLE-NAME(id); 

ALTER TABLE MailSent ADD CONSTRAINT fk_profil_receiver_id FOREIGN KEY (profil_receiver_id) REFERENCES TABLE-NAME(id); 
+0

So ist es richtig, dachte ich, sollte ich habe nur eine für Geben Sie den Schlüssel "profil_id" ein und ich kann alle anderen Felder mit der ID – Najoua

+0

abrufen. Wenn Sie den Fremdschlüssel 'profile_id' in Ihrer Tabelle hinzufügen, erhalten Sie alle Informationen über die Fremdschlüsselreferenztabelle (z. B. Profil) 'using' profile_id'. –

+0

Also ist es auch richtig, oder? – Najoua

0

Wenn Sie Fremdschlüssel hinzufügen möchten, wenn Sie die Tabelle erstellen, wie dies tun könnte:

create table MailSent(

    Id int primary key, 

    date datetime, 

    profil_sender int, 

    profil_receiver int, 

    CONSTRAINT fk_sender FOREIGN KEY (profil_sender) REFERENCES profil(id), 

    CONSTRAINT fk_receiver FOREIGN KEY (profil_receiver) REFERENCES profil(id) 

) 
Verwandte Themen