PDA

View Full Version : [sql] schema DB mysql


prazision
19-04-2009, 14:31
dunque ho un DB da creare per dei vestiti da vendere

ci sono delle macrocategorie: uomo, donna, bambini, ecc.


delle categorie: jeans, magliette, scarpe, ecc.

e infine i prodotti: maglietta A, maglietta B, maglietta C, jeans A, jeans B, ecc.

ogni prodotto può avere più colori (e quindi immagini diverse) e più descrizioni (a seconda della lingua scelta)

io farei così:

tabella macrocategorie (id + descrizione)
tabella categorie (id + descrizione)
tabella lingue (id + descrizione)
tabella colori (id + descrizione)
tabella prodotti: id e poi ogni prodotto fa riferimento con una chiave esterna alle macrocategorie e alle categorie
una tabella che associa l'id prodotto all'id colore e ha anche un campo per l'immagine (di quel prodotto con quel colore)
una tabella che associa l'id prodotto all'id lingua e ha anche un campo per la descrizione (di quel prodotto con quella lingua)

come vi pare?
grazie

prazision
19-04-2009, 15:05
beh devo anche legare categorie e macrocategorie, magari facendo un'unica tabella categorie con un campo id_padre

qualcosa tipo

id:1, descrizione:uomo, padre: 0
id:2, descrizione:jeans-uomo, padre: 1
id:3, descrizione:magliette-uomo, padre: 1
id:4, descrizione:donna, padre: 0
id:5, descrizione:jeans-donna, padre: 4
id:6, descrizione:gonne-donna, padre: 4
id:7, descrizione:cappellini-donna, padre: 4
ecc

a questo punto i prodotti sarebbero legati solo alla categoria (anche perchè la macro non esisterebbe più)

CozzaAmara
19-04-2009, 18:18
dunque ho un DB da creare per dei vestiti da vendere

ci sono delle macrocategorie: uomo, donna, bambini, ecc.


delle categorie: jeans, magliette, scarpe, ecc.

e infine i prodotti: maglietta A, maglietta B, maglietta C, jeans A, jeans B, ecc.

ogni prodotto può avere più colori (e quindi immagini diverse) e più descrizioni (a seconda della lingua scelta)

io farei così:

tabella macrocategorie (id + descrizione)
tabella categorie (id + descrizione)
tabella lingue (id + descrizione)
tabella colori (id + descrizione)
tabella prodotti: id e poi ogni prodotto fa riferimento con una chiave esterna alle macrocategorie e alle categorie
una tabella che associa l'id prodotto all'id colore e ha anche un campo per l'immagine (di quel prodotto con quel colore)
una tabella che associa l'id prodotto all'id lingua e ha anche un campo per la descrizione (di quel prodotto con quella lingua)

come vi pare?
grazie

Mi sembra corretta come impostazione ma, quante lingue hai?

Perchè se, oltre all'italiano, sono 1 o anche 2 potrebbe essere più pratico gestirle tutte nelle stessa tabella se è solo la descrizione che cambia.

es campi: prodotto_descrizione; prodotto_descrizione_en; prodotto_descrizione_es

Ovviamente perdi in normalizzazione ma tutto dipende da quante lingue hai e dalla mole di dati.

Sulla gestione delle categorie, d'accordo nell'usare un'unica tabella in cui inserire un campo "categoria_parent_id"

prazision
19-04-2009, 18:24
Mi sembra corretta come impostazione ma, quante lingue hai?

Perchè se, oltre all'italiano, sono 1 o anche 2 potrebbe essere più pratico gestirle tutte nelle stessa tabella se è solo la descrizione che cambia.

es campi: prodotto_descrizione; prodotto_descrizione_en; prodotto_descrizione_es

Ovviamente perdi in normalizzazione ma tutto dipende da quante lingue hai e dalla mole di dati.

Sulla gestione delle categorie, d'accordo nell'usare un'unica tabella in cui inserire un campo "categoria_parent_id"

per ora 2 lingue, non penso ce ne saranno di più ma boh

cmq grazie

Big Bamboo
19-04-2009, 18:37
Mi associo al consiglio delle lingue in un solo record per oggetto.
Inoltre non capisco cosa contenga la descrizione nella tabella colore.
se come immagino ha una struttura tipo questa
id 1 - rosso
id 2 - bianco
io direi che si può gestire a livello applicazione.

prodotti
id - cat_id - macro_id - descr_it - descr_en

colori
id_col - id_prod - link_img

prazision
19-04-2009, 18:45
Mi associo al consiglio delle lingue in un solo record per oggetto.
Inoltre non capisco cosa contenga la descrizione nella tabella colore.

la tabella colori contiene il nome del colore e l'id colore ( la tabella che associa l'id prodotto all'id colore è differente da questa)


è unpo' lo stesso discorso che si faceva per le lingue, se si è sicuri che ce ne siano solo 2 ok li si infila nella tabella prodotti ma nel caso i colori possano aumentare e diventare 12 o 15 come si fa?

comunque lo schema che hai messo giù per i colori è uguale al mio (quando dico "una tabella che associa l'id prodotto all'id colore ")

grazie

Big Bamboo
20-04-2009, 18:28
Io intendevo che il nome del colore poteva essere memorizzato fuori dal database, a livello applicazione appunto.
Definisci tutti i colori con enum e poi il programma definirà l'id da associare al colore e eviti una tabella e relative join

prazision
20-04-2009, 18:49
Io intendevo che il nome del colore poteva essere memorizzato fuori dal database, a livello applicazione appunto.
Definisci tutti i colori con enum e poi il programma definirà l'id da associare al colore e eviti una tabella e relative join

ok scusa non avevo capito

si potrebbe fare ma
1) c'è anche un'immagine da associare al colore (l'immagine del colore appunto)
2) magari in futuro farò un sistema di amministrazione per aggiungere nuovi colori (e non solo ovviamente), un sistema che verrà gestito dal cliente; non so come sia la cosa in php (come vengono gestiti gli enumeration) ma in java mi verrebbe da pensare che è meglio mettere il tutto nel db

grazie cmq

prazision
20-04-2009, 18:52
colori
id_col - id_prod - link_img



ma poi scusa non ho capito, questa tabella avrebbe l'id colore che non fa riferimento a un dato del db ma a un dato infilato nel codice applicativo?