Puedo tener dos claves foráneas en la misma tabla que hacen referencia a otra tabla denominada profil(el mismo) ?

mi tabla es MailSent, que contiene : primary key (Id), fecha, foreignkey1 (profil_sender), foreignkey2 (profil_receiver)

InformationsquelleAutor Najoua | 2016-11-03

2 Comentarios

  1. 6

    Agregar claves foráneas (profil_sender_id, profil_receiver_id) a una tabla existente (MailSent), siga los siguientes pasos:

    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);
    • Por lo que es correcto, pensé que debería tener sólo una clave externa «profil_id» y, a continuación, puedo hacer que todos los otros campos mediante el id
    • Si usted agregar la clave externa profile_id en la tabla de obtener toda la información acerca de la clave foránea tabla de referencia(e.g. profile) utilizando profile_id.
    • Así, es correcto, ¿no ?
    • Sí. Es correcto. Más acerca de la clave externa visite el enlace: mysqltutorial.org/mysql-foreign-key
  2. 2

    Si quieres añadir extranjeros claves a la hora de crear la tabla, se podría hacer así:

    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)
    
    )

Dejar respuesta

Please enter your comment!
Please enter your name here