Il calcolatore è straordinariamente veloce, accurato e stupido.
L'uomo è incredibilmente lento, impreciso e creativo.
L'insieme dei due costituisce una forza incalcolabile.
(Albert Einstein)
In effetti non è proprio così, devi ragionare pensando che per ciascun modello (prodotto) hai una sola tabella di dettaglio, tutte le altre non lo riguardano, faccio un esempio concreto:
Modelli
i dettagli dei prodotti con id 1 e 4 (Pane e Carne) saranno solo nella tabella serie_alimentare, per questi due prodotti tutte le altre tabelle serie (serie_informatica e serie_abbigliamento) non ti riguardano.codice:id tipo nome 1 alimentare Pane 2 abbigliamento Gonna 3 informatica PC 4 alimentare Carne
Chiarito questo passiamo a come estrarre i dati, le soluzioni sarebbero tante, e molto dipende da come stai programmando (spero sia programmazione a oggetti) e da come devi visualizzare i dati all'utente.
Se proprio vuoi fare tutto in un unica query (personalmente non lo farei) puoi fare una cosa di questo tipo:
--------------------------------
SELECT modelli.*,serie_alimentiari.*, serie_informatica.*,serie_abbigliamento
FROM modelli
left join serie_alimentiari on serie_alimentiari.idModelli=modelli.id
left join serie_informatica on serie_informatica.idModelli=modelli.id
left join serie_abbigliamento on serie_abbigliamento.idModelli=modelli.id
WHERE <CONDIZIONI>
------------------------------------
mentre per fare una cosa più funzionale lascerei che siano gli script a gestire la cosa, e precisamente programmando a oggetti farei una classe prodotti che poi viene estesa dalla classe informatica, dalla classe abbigliamento etc.. questo anche in considerazione del fatto che sicuramente nelle scermate per l'utente avrai dei compartimenti separati per ciascuna tipologia, anche perchè sarebbe assurdo dare all'utente una schermata del tipo
Quindi, molto probabilmente, quando devi estrarre tutti i prodotti insieme non hai necessità dei dettagli ma solo dei dati generali (nome, descriione, prezzo, prezo acquisto, pezzi disponibili etc..) e quindi vai a guardare solo la tabella modelli, mentre se sei in una sezione dove devi visualizzare solo i prodotti informatici allora nello script userai la classe informatica le cui query saranno tutte costruite per andare a vedere nella tabella serie_informatica.codice:nomeProdotto Peso HardDisk Taglia Scadenza Gonna ABC 250g - 45 - Notebook VV 5 Kg 250GB - - Fettine 1Kg - - 15/04/2012
Tutto ciò ovviamente IMHO .... anche perchè la programmazione è anche una questione di gusti![]()
Ultima modifica di las; 01-11-2013 a 12:07 Motivo: Centrare i dati tabellari
Il calcolatore è straordinariamente veloce, accurato e stupido.
L'uomo è incredibilmente lento, impreciso e creativo.
L'insieme dei due costituisce una forza incalcolabile.
(Albert Einstein)