• User Newbie

    rendere chiave primaria una chiave esterna

    ciao a tutti,
    mi sapete dire quale è il codice SQL per rendere una chiave esterna anche chiave primaria?

    Vi faccio un esempio io ho due entità ed un'associazione del tipo

    E1: PERSONA con chiave primaria codiceFiscale

    A: puòEssere

    E2: FEMMINA con chiave esterna PERSONA.codiceFiscale

    (ora indipendentemente dal fatto che possa essere più o meno giusto a volte è necessario fare una cosa del genere) questo tipo di modello E/R si traduce in 2 tabelle: PERSONA e FEMMINA.

    In questo caso la chiave esterna PERSONA.codiceFiscale della tabella FEMMINA può essere anche chiave primaria perchè il codice fiscale è univoco per ogni persona, però ogni occorrenza della tabella FEMMINA deve corrispondere a un'occorrenza della tabella PERSONA.

    Come faccio a combinare le due cose?

    Se rendo chiave esterna PERSONA.codiceFiscale mi permette di inserire più entry con lo stesso codice fiscale nella tabella FEMMINA, se invece la metto come chiave primaria posso inserire una entry in FEMMINA anche se non ce n'è una corrispondente in PERSONA, se aggiungo il vincolo uinque key perde la proprietà di chiave esterna... Come faccio?

    E un'altra cosa: come rendo chiave primaria la combinazione di due campi? Cioè quando due campi insieme mi creano una chiave primaria. Quale è il codice?

    Io sto utilizzando MySQL