Gestione di compatibilità tra prodotti

di il
3 risposte

Gestione di compatibilità tra prodotti

Salve a tutti, sto progettando un database che serve anche per la gestione di compatibilità tra prodotti. Questa avviene tra prodotti presenti su una stessa tabella, dato un particolare comune a entrambi i prodotti. Per come ho progettato il database ora, esiste una tabella product che contiene tutti i prodotti, una tabella con le varie tipologie dell'elemento compatibile, e una tabella che associa id del prodotto con l'id della tipologia con cui e compatibile. per esempio:

ho in una tabella i prodotti:
id - prodotto
- 01 - lampada
- 02 - lampada
- 03 - portalampada

una tabella per i vari tipi di lampade:

id - forma
- 01 - grande
- 02 - piccola

una tabella che associa la lampada con la sua forma
id_lampada - id_forma
01 - 02
02 - 01

e una tabella che dice con quali forme è compatibile il portalampada:

id_portalampada - id_forma
03 - 01
03 - 02

immaginando che queste compatibilità vengono utilizzate per diversi tipi di prodotti che hanno diversi campi di compatibilità, c'è un modo più corretto per gestire la cosa?

3 Risposte

  • Re: Gestione di compatibilità tra prodotti

    Ehm! Temo che hai proposto un quesito del tipo "il gatto che si morde la coda". Qualcosa mi ricorda un enigma in cui alcuni sono già inciampati. Si tratta della classica Torta con Ingredienti dove sia le Torte sia gli Ingredienti potrebbero essere i Prodotti. Non ricordo più dove ripescarla una di queste vecchie discussioni (molto interessanti direi).
    Bando a sofismi filosofici, provo ad approcciare qualcosa.
    Per me Lampada-Ikea-Piccola è un Prodotto diverso da Lampada-Ikea-Grande. Ovviamente anche Portalampada-Ikea-Piccola è diverso da Portalampada-Ikea-Grande. Ho già elencato 4 Prodotti diversi con 4 IDProdotto diversi. Io penserei a una tabella Prodotti con i seguenti campi:
    IDProdotto (contatore, chiave primaria)
    TipoProdotto
    Marca
    Forma

    Adesso ogni Prodotto deve essere associato a tutti gli altri suoi compatibili. Quindi una tabella Compatibilità con i seguenti campi:
    IDCompatibilità (contatore, chiave primaria)
    IDProdotto (numerico)
    IDProdottoCompatibile (numerico)

    2 linee di relazione:
    Prodotti.IDProdotto uno-a-molti con Compatibilità.IDProdotto
    Prodotti.IDProdotto uno-a-molti con Compatibilità.IDProdottoCompatibile

    Per rendere il discorso completo, potresti prevedere le seguenti tabelle "satelliti":
    TipiProdotti
    TipoProdotto (testo, chiave primaria)

    Marche
    Marca (testo, chiave primaria)

    Forme
    Forma (testo, chiave primaria)

    Relazioni:
    TipiProdotti.TipoProdotto uno-a-molti con Prodotti.TipoProdotto
    Marche.marca uno-a-molti con Prodotti.Marca
    Forme.Forma uno-a-molti Prodotti.Forma
  • Re: Gestione di compatibilità tra prodotti

    Prima di tutto grazie per la risposta, però devo per forza mantenere due tabelle separate per specificare la froma e il prodotto, quindi questa maniera non va bene anche perchè ci avevo già pensato. La mia domanda più nello specifico era: È possibile rifare la stesso funzionamento del mio database in un altra maniera?
  • Re: Gestione di compatibilità tra prodotti

    Io ti ho proposto 5 tabelle. 2 fondamentali e 3 satelliti (scusa sono miei termini per rendere il discorso concreto/corposo, non esistono tecnicamente).
    La tabella Prodotti ce l'hai. La tabella Forme ce l'hai. Quest'ultima serve ad alimentare il campo Forme nella tabella Prodotti.
    Non vedo altre strutture. Almeno che tu non fornisca altri dettagli.
Devi accedere o registrarti per scrivere nel forum
3 risposte