[MYSQL] creazione tabella - uno a molti
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
[MYSQL] creazione tabella - uno a molti
Salve, sto ancora in mare alto.. per la questione dei tag cloud ..
ora mi serve fare una tabella con relazione n a molti.
ho trovato questo sito:
http://web.tiscalinet.it/programmazione/relazioni.htm#uno
ma come faccio per fare quello che vorrei fare io?
tab: tag
tab: news con campo tags varchar(255)
idee come realizzare questo coso.?
ora mi serve fare una tabella con relazione n a molti.
ho trovato questo sito:
http://web.tiscalinet.it/programmazione/relazioni.htm#uno
ma come faccio per fare quello che vorrei fare io?
tab: tag
tab: news con campo tags varchar(255)
idee come realizzare questo coso.?
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: [MYSQL] creazione tabella - uno a molti
esempio : fornitori ... nel mio caso sarebbe i tags e prodotti sarebbe news ?
giusto?
giusto?
Re: [MYSQL] creazione tabella - uno a molti
Ma i tag sono anche chiavi di tabella? Perché se non è così non ti serve una relazione uno a monti ma una molti a molti, cioé una news può avere piu' tag e un tag può essere utilizzato in piu' news.
Io farei 3 tabelle così:
1) TAGS ( id:INTEGER, tag:VARCHAR(255) )
2) NEWS ( id:INTEGER, ....altri campi.... )
3) NEWS_TAGS( id_tag:INTEGER, id_news:INTEGER) con entrambi gli id FK sulle altre tabelle
Realizzabile con:
Io farei 3 tabelle così:
1) TAGS ( id:INTEGER, tag:VARCHAR(255) )
2) NEWS ( id:INTEGER, ....altri campi.... )
3) NEWS_TAGS( id_tag:INTEGER, id_news:INTEGER) con entrambi gli id FK sulle altre tabelle
Realizzabile con:
Codice: Seleziona tutto
CREATE TABLE IF NOT EXISTS `NEWS` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`campo1` varchar(255) NOT NULL,
`campo2` varchar(255) NOT NULL,
`campo3` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `NEWS_TAGS` (
`id_news` int(11) NOT NULL,
`id_tag` int(11) NOT NULL,
PRIMARY KEY (`id_news`,`id_tag`),
KEY `FK_TAGS` (`id_tag`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `TAGS` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ALTER TABLE `NEWS_TAGS`
ADD CONSTRAINT `FK_TAGS` FOREIGN KEY (`id_tag`) REFERENCES `TAGS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `FK_NEWS` FOREIGN KEY (`id_news`) REFERENCES `NEWS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: [MYSQL] creazione tabella - uno a molti
ciao, e grazie mille .. appena ho tempo libero provo. Ora devo andare via.
prima di sera provo e poi ti faccio sapere.
prima di sera provo e poi ti faccio sapere.
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: [MYSQL] creazione tabella - uno a molti
ok, sto provando.. volevo dire una cosa, per l'inserimento o modifica..
io uso un input=type text , come devo fare?
grazie mille.
io uso un input=type text , come devo fare?
grazie mille.
Re: [MYSQL] creazione tabella - uno a molti
Che c'entrano gli input con una relazione sql?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: [MYSQL] creazione tabella - uno a molti
dicevo come faccio inserire i tag alle notizie in un form di inserimento?Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4570783#p4570783][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Che c'entrano gli input con una relazione sql?
ti ringrazio molto.
buona serata.
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: [MYSQL] creazione tabella - uno a molti
ho provato ad inserire i sql nel mio phpmyadmin questo:
essendo che news c'è lo già inserito ma mi restituisce:
che vuol dire?
Codice: Seleziona tutto
CREATE TABLE IF NOT EXISTS `NEWS_TAGS` (
`id_news` int(11) NOT NULL,
`id_tag` int(11) NOT NULL,
PRIMARY KEY (`id_news`,`id_tag`),
KEY `FK_TAGS` (`id_tag`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `TAGS` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ALTER TABLE `NEWS_TAGS`
ADD CONSTRAINT `FK_TAGS` FOREIGN KEY (`id_tag`) REFERENCES `TAGS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `FK_NEWS` FOREIGN KEY (`id_news`) REFERENCES `NEWS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;Codice: Seleziona tutto
Errore
Query SQL:
ALTER TABLE `NEWS_TAGS`
ADD CONSTRAINT `FK_TAGS` FOREIGN KEY (`id_tag`) REFERENCES `TAGS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `FK_NEWS` FOREIGN KEY (`id_news`) REFERENCES `NEWS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Messaggio di MySQL: Documentazione
#1215 - Cannot add foreign key constraint - Bianco95
- Prode Principiante
- Messaggi: 31
- Iscrizione: venerdì 25 aprile 2014, 21:29
- Desktop: Unity
- Distribuzione: Ubuntu 14.04 x86_64
- Località: Susegana (Treviso)
Re: [MYSQL] creazione tabella - uno a molti
prova questo:
Codice: Seleziona tutto
CREATE TABLE IF NOT EXISTS `NEWS` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`campo1` varchar(255) NOT NULL,
`campo2` varchar(255) NOT NULL,
`campo3` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `TAGS` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `NEWS_TAGS` (
`id_news` int(11) NOT NULL,
`id_tag` int(11) NOT NULL,
PRIMARY KEY (`id_news`,`id_tag`),
FOREIGN KEY (`id_news`) REFERENCES `NEWS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`id_tag`) REFERENCES `TAGS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Work Hard Dream Big
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
Dopo le ere della pietra, del ferro... è giunta l'era di Linux.
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: [MYSQL] creazione tabella - uno a molti
ok, cosi è entrato nel sistema:
anche se io ho cambiato alcune cose, tipo l'engine.. che l'host vuole usare myisam invece di innodb.
per l'inserimento con la form come sarebbe la questione ?
riprendo domani pomeriggio ..
buona serata.
Codice: Seleziona tutto
CREATE TABLE IF NOT EXISTS `tags` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `news_tags` (
`id_news` int(11) NOT NULL,
`id_tag` int(11) NOT NULL,
PRIMARY KEY (`id_news`,`id_tag`),
FOREIGN KEY (`id_news`) REFERENCES `NEWS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`id_tag`) REFERENCES `TAGS` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=MyISAM DEFAULT CHARSET=utf8;per l'inserimento con la form come sarebbe la questione ?
riprendo domani pomeriggio ..
buona serata.
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: [MYSQL] creazione tabella - uno a molti
dico che posso fare : #cani #gatti #uccellini #rettili ..
etc..
idee?
etc..
idee?
Re: [MYSQL] creazione tabella - uno a molti
Continuo a non capire.
Se la questione relazione sql è conclusa apri un altra discussione
Se la questione relazione sql è conclusa apri un altra discussione
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Chi c’è in linea
Visualizzano questa sezione: Google [Bot] e 6 ospiti
