![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
User Newbie
Data di registrazione: Jan 2012
Ubicazione: firenze
Messaggi: 6
|
Tabella caratteristiche dei prod
Ciao ,
sto creando un e-commerce ma ho un problema, nel database ho una tabella prodotti che contiene diversi tipi di prodotti ad esempio hard disk , cpu , ram , ecc. ogni tipo di prodotto ha delle caratteristiche quindi ho pensato di creare una tabella che contiene il nome della caratteristica associata ad una tipologia di prodotto e un altra tabella che contiene il prodotto e il valore della sua caratteristica. Esempio caratterisitche id -------tipologia ----- caratteristica ------------------------------------------- 1 --------cpu --------------numero core 2 -------- hard disk-------- memoria 3 --------cpu--------------- marca -------------------------------------------- valori caratteristiche id_caratteristica ------ valore_caratteristica ------- id_prodotto --------------------------------------------------------------------- 1------------------------- 2 core -------------------------54 3 -------------------------nome_marca ------------------32 2 -------------------------70 GB ------------------------- 22 ----------------------------------------------------------------------- Mettiamo io voglia filtrare la ricerca per far uscire solo le cpu con 2 core , faccio una select che mi va a estrarre l' id_prodotto dove l' id_caratteristica è quello del numero di core e il valore_caratteristica è 2 core . Fin qui tutto ok, il problema nasce quando ci sono più caratteristiche per una tipologia .....se io voglio estrarre le cpu che hanno 2 core e hanno una determinata marca come faccio'?? |
|
|
|
|
|
|
|
#2 (permalink) |
|
Data di registrazione: Feb 2010
Messaggi: 136
|
Quindi hai una tabella con i computer e una seconda tabella con le caratteristiche generali. Ok.
Ogni computer ha le sue caratteristiche che saranno gli ID delle caratteristiche generali. Quello che fai tu è inserire l'id del prodotto nei valori caratteristiche. Invece lì metti tutto quello che hai: 2 core, 4 core, le varie dimensioni degli hard disk e così via. I nomi delle marche magari gestiscili in una maniera differente, magari inserendoli nella tabella del singolo prodotto. Quando fai una ricerca basta che indichi i due valori da cercare: Codice PHP:
|
|
Ultima modifica di portapipe : 13-01-12 10:17. |
|
|
|
|
|
|
#3 (permalink) |
|
User Newbie
Data di registrazione: Jan 2012
Ubicazione: firenze
Messaggi: 6
|
grazie per la risposta ...ma non è quello che cercavo , forse non sono stato abbastanza chiaro .
Innanzitutto non si tratta di computer ma di prodotti per computer singoli , quindi cpu, ram ecc. come dicevo ogni prodotto ha le sue caratteristiche , queste caratteristiche mi servono per filtrare la ricerca quindi se voglio tutte le cpu con due core vado a selezionare dalla tabella prodotti le cpu poi faccio una join con la tabella caratteristiche tramite id del prodotto e nella tabella vado a prendere quelle con 2 core... Il problema nasce quando devo filtrare per più caratteristiche (ho fatto un esempio per marca ma potevo benissimo utilizzare un' altra caratteristica) quindi devo fare la join e prendere tutte le cpu che hanno 2 core e marca intel ....il problema è che non posso fare una select con where caratteristica='2 core' and caratteristica='intel' perchè utilizzano lo stesso campo.... per ora ho risolto con una self join , ma non so se esiste un modo più efficente di scrivere questa query |
|
|
|
|
|
#4 (permalink) |
|
Data di registrazione: Feb 2010
Messaggi: 136
|
Per me strutturi male la tabella del database.
Scusa ma oggi ho lavorato molto e sono un pò lento. Mi spieghi come spiegheresti ad un bambino cosa vuoi ottenere? Hai scritto quello che vorresti e l'ho diciamo capito ma prova a dirlo senza lato tecnico, come visto da un utente comune. |
|
|
|
|
|
#5 (permalink) |
|
User Newbie
Data di registrazione: Jan 2012
Ubicazione: firenze
Messaggi: 6
|
ok , entro nel sito , vado nella sezione computer e li ci sono i vari prodotti senza filtri , in questa sezione posso cliccare su una delle sottosezioni indicate (cpu, ram, hard disk, ecc.) , clicco su cpu , e mi trovo le varie cpu , però ci sono delle select che mi permettono di filtrare i risultati ...per capirci c' è la select del numero di core quindi 1 core , 2 core , 4 core ecc.
select tipo di socket e i vari tipi di socket select marca , le varie marche elencate scegliendo uno o più filtri mi trova solo le cpu che corrispondono ai filtri scelti. |
|
|
|