Ciao.
Mi è sorto un dubbione in una tabella
posso usare una foreign key senza attribuire
alla stessa tabella una primary key.
Secondo me si, ma avrei piacere di conoscere
la vs opinione.
![]()
Ciao.
Mi è sorto un dubbione in una tabella
posso usare una foreign key senza attribuire
alla stessa tabella una primary key.
Secondo me si, ma avrei piacere di conoscere
la vs opinione.
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
Uppete![]()
Il dubbione persiste ....................
Spiegamo la cosa ho una tabella TEST
(con primary key test_id) dove ho
una serie di domande.
Nella tabella test_results ho come
foreign key test_id.
In questo modo:
Può andare ?Codice PHP:
CREATE TABLE IF NOT EXISTS `test` (
`test_id` smallint(5) unsigned NOT NULL auto_increment,
`test_title` varchar(255) NOT NULL default '0',
`test_question1` varchar(255) NOT NULL default '0',
`test_question2` varchar(255) NOT NULL default '0',
-- etc ...........
PRIMARY KEY (`test_id`)
) ENGINE=MyISAM;
CREATE TABLE IF NOT EXISTS `test_results` (
`test_id` smallint(5) unsigned NOT NULL,
-- in test_result metto i risultati in questa forma
-- a,c,d,a, etc
`test_result` varchar(255) NOT NULL default '0',
FOREIGN KEY ( `test_id` ) REFERENCES test( `test_id` ) ON DELETE CASCADE
) ENGINE=MyISAM;
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
Ma c'è un motivo per non mettere la PK?
Una PK qualsiasi sia la tabella ci dovrebbe sempre essere a garantire l'integrità dei dati.
Ciao e grazie della reply.
Hai ragione anche te il solo motivo era (adesso ne metterò unaMa c'è un motivo per non mettere la PK?)
che non pensavo potesse ritornarmi utile a livello di query.
Adesso che ci penso potrebbe essere la stessa test_id visto
che la relazione è 1/1.
Cosa ne pensi ?
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
A tutti gli effetti test_results sembra una tabella sottoinsieme di test quindi test_id ne è contemporaneamente una FK e PK.
Attento perchè il tipo di tabella "MyISAM" non supporta le FOREIGN KEYS.
Infatti ho scoperto che la mia versione di MySQL 5 non ha le InnoDB.![]()
Grazie per la precisazione.Attento perchè il tipo di tabella "MyISAM" non supporta le FOREIGN KEYS.
Ero già al corrente della cosa ma pur non applicando l'integrità
referenziale con tabelle di tipo MyISAM ottengo un INDEX
per la foreign key.
(Uso questa sintassi al fine di una migliore lettura del codice).
![]()
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it