183 messaggi dal 12 febbraio 2016
Buongiorno a tutti,
vorrei da parte vostra un consiglio su come strutturare le tabelle del mio db sql.
Ho realizzato un piccolo ecommerce in MVC con database sql e tra le varie tabelle ha quella relativa ai prodotti.
Senza entrare nello specifico la tabella Prodotti ha ID, Nomeprodotto, ecc...
Ora vorrei aggiungere le varianti prodotto con diversi attributi (colore, peso, ecc..).
E' bene creare una nuova tabella "Variantiprodotti" per salvare i vari prodotti o posso utilizzare una sola?
Avendo creato la tabella varianti (che contiene gli attributi (colore, peso, ecc..) come posso organizzare i prodotti con le varianti?

Faccio un esempio con un prodotto:

Prodotto: Pendrive usb 16GB
Variante: colore rosso
Variante: colore nero
ecc...
427 messaggi dal 13 novembre 2009
Il consiglio è generare una tabella che prevede una colonna chiave è una descrizione essendo una tabella anagrafica unica più multi a molti associandola ai prodotti. Ti suggerisco di vedere ad esempio codice sorgente di nopcommerce Mvc Net
114 messaggi dal 09 luglio 2009
Ciao Piero,
premesso che per rispondere alla tua domanda bisognerebbe comprendere la complessità del tuo progetto.

Detto questo, un semplice DB per la gestione di PRODOTTO-VARIANTE, potrebbe essere popolato con le seguenti tabelle:

- PRODOTTO [IdProdotto, NomeProdotto, Descrizione...]
- VARIANTI [IdVariante, TipoVariante]
- PRODOTTO_VARIANTE [ID, IdProdotto, IdVariante].


In virtù del fatto che una buona regola della normalizzazione dei dati in un DB prevede la non ridondanza dei dati, ho preferito creare una tabella Prodotto_Variante in relazione n-n.

Questo ti aiuta ad organizzare i dati senza dover ripetere le diverse varianti che, invece, sono memorizzati una sola volta nella tabella VARIANTI.

Un esempio:
Prodotto:
1 Pendrive 16GB
2 Pendrive 32GB

Varianti:
1 Rosso
2 Verde
3 Giallo

Prodotto_Variante:
1, 1, 3

In questo caso ho memorizzato nella tabella Prodotto_Variante (riga con id 1) un prodotto Pendrive 16GB (id 1 della TBL Prodotto) nella variante Giallo (id 3 della TBL Varianti).

Questo approccio è secondo me il migliore, ti aiuta in tanti casi, uno su tutti quello di poter gestire, per esempio, lo stock di ogni prodotto diversificato per ogni variante.

Spero di essere stato d'aiuto.

A presto e buone feste!
Marco P.
183 messaggi dal 12 febbraio 2016
Ti ringrazio Marco,
ho pensato nello stesso modo tuo infatti dopo aver creato la tabella Varianti ho creato un'altra tabella Variantiprodotti con le seguenti colonne:
ID | IdProdotto | IdVariante | Valorevariante | Pezzi | Prezzounitario

Ecco un esempio
1 | 12 | 1 | Rosso | 10 | 100,00

Così mi andrebbe pure bene, ma se volessi unire due varianti come potrei fare?
Ad esempio per avere un prodotto con colore rosso e taglia XL.

Grazie per l'aiuto
114 messaggi dal 09 luglio 2009
Non credo che tu abbia seguito esattamente ciò che intendevo. Se così fosse, non avresti il testo "Rosso" all'interno della tabella ProdottoVarianti ma solo l'ID del prodotto e l'ID della variante che sono memorizzate in maniera univoca e non ridondante nelle rispettive tabelle.

Come da me spiegato nella prima risposta puoi tranquillamente valutare di gestire più varianti proprio perchè si tratta di una relazione molti/molti (più prodotti/ più varianti).

Quindi supponendo che:
- il tuo Prodotto ha ID 1,
- la variante Rosso con ID 2 e la variante Verde con ID 3 nella tabella Varianti,

puoi memorizzare le due varianti nella tabella ProdottoVarianti in questo modo:
1| 1| 2 | 10|
2| 1| 3 | 30|

Dove:
- il primo campo è l'ID della riga,
- il secondo l'ID del prodotto,
- il terzo l'ID della variante,
- il quarto il pezzi in stock

Ciao, a presto
183 messaggi dal 12 febbraio 2016
Ma le varianti prodotto sono formate da due campi: chiave e valore, ad esempio colore : rosso, oppure taglia : XL, ecc..
Ecco il motivo per il quale uso l'ID del variante per risalire alla chiave (colore, taglia, Peso, ecc..) e il valore lo inserisco nella tabella variantiprodotti.
Vorrei capire adesso come poter unire due varianti per formare una concatenazione (tipo colore rosso e taglia M).
183 messaggi dal 12 febbraio 2016
Nessuno mi può indicare un suggerimento?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.