|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
[SQL] Problema con chiavi esterne: help me...
Ragazzi ho queste 3 tabelle:
anagrafica(cf, nome, cognome) cf è chiave primaria medico(cf, nome, cognome, tel) cf è chiave primaria in_cura(paziente, medicocur) paziente è chiave primaria; paziente si riferisce ad anagrafica(cf) e medicocur si riferisce a medico(cf). il mio problema in MySQL è ke inserendo dei record nella tabella in_cura mi da errore, qualcuno sa dirmi il motivo? E una possibile soluzione se esiste...
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
La spiegazione più immediata è che, essendo in_cura una tabella di raccordo, tu possa aver tentato di inserire chiavi ( i cf ) non presenti nelle rispettive tabelle dove sono chiavi primarie...
Questa tabella di raccordo che hai creato è corretta, ma utile solo nel caso in cui ci possano essere relazioni molti<->molti tra le tabelle di riferimento ( 1Paziente-> Molti medici e 1 Medico -> molti pazienti ). Se invece 1 medico curante ha molti pazienti, e un paziente ha 1 solo medico per volta, è superflua. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
Cmq i cf di entrambi nelle tabelle origine sono stati inseriti... Tu ke dati mi consigli di inserire nella tabella? Mi serve soprattutto xkè dovrei fare un paio di query su questa tabella... Grazie mille marco
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Io questa tabella in_cura la vedo un po' come una tabella "dettaglioVisite", con un idVisita (PK), dataVisita, cfPaziente (FK), cfMedico (FK).
Detto questo onestamente non ti so dire perchè nel tuo caso vada in errore... |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
anche sapere l'errore non sarebbe male
![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Ok, vi posto il tutto:
Codice:
CREATE TABLE `dati_anagrafici` ( `Codice_fiscale` varchar(25) NOT NULL, `Nome` varchar(25) NOT NULL, `Cognome` varchar(25) NOT NULL, `Data_di_nascita` DATE NOT NULL, PRIMARY KEY (`Codice_fiscale`) ) ENGINE = InnoDB; Codice:
CREATE TABLE `medico_curante` ( `Codice_fiscale` varchar(25) NOT NULL, `Nome` varchar(25) NOT NULL, `Cognome` varchar(25) NOT NULL, `Telefono` int NOT NULL, PRIMARY KEY (`Codice_fiscale`) ) ENGINE = InnoDB; Codice:
CREATE TABLE `in_cura` ( `Paziente` varchar(25) NOT NULL, `Medico_curante` varchar(25) NOT NULL, PRIMARY KEY (`Paziente`), FOREIGN KEY(`Paziente`) REFERENCES `dati_anagrafici`(`Codice_fiscale`), FOREIGN KEY(`Medico_curante`) REFERENCES `medico_curante`(`Codice_fiscale`) ) ENGINE = InnoDB; Codice:
INSERT INTO dati_anagrafici(Codice_fiscale, Nome, Cognome, Data_di_nascita) VALUES (‘PICGIU89E25T786V’,’Giulia’,’Piccoli’,’1989-5-25’) INSERT INTO medico_curante(Codice_fiscale, Nome, Cognome, Telefono) VALUES (‘SCIPAO53G6T236L’,’Paolo’,’Scivetti’,’027610686’) Codice:
INSERT INTO in_cura(Paziente, Medico_curante) VALUES (‘PICGIU89E25T786V’,’ SCIPAO53G6T236L’) Quote:
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
guarda la query di inserimento in in_cura, il secondo codice fiscale ha uno spazio davanti, è per questo che non funziona.
ciao |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
|
Quote:
![]() ![]() ![]() Grazie mille x l'aiuto
__________________
PC: Intel Core i5 4690K @ 3,5 Ghz | VGA Gigabyte GTX 970 G1 Gaming | RAM G Skill Ares 1866 Mhz (2x4GB) | HDD WD Caviar Blue 1TB | SSD Samsung 840 Evo 250GB | MoBo AsRock Z97 Extreme 4 Router: Netgear dg834g v5 Notebook: Asus x53sv: Intel i7 2630qm | Geforce gt630 | RAM 4GB | SSD 250GB Cell: Iphone 8 64GB Black Tablet: Ipad Air 16GB + 4G Grigio siderale |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:09.