Progettazione database Magazzino

di il
6 risposte

Progettazione database Magazzino

Salve ragazzi sto realizzando un database per un magazzino. Ho un problema. Il magazzino deve essere realizzato in sezioni e quindi ho creato l'entità sezioni. Le sezioni sono : elettrico meccanico pittura
SEZIONI
codice PK
nome testo
Poi ho i vari oggetti del magazzino. Il problema è che i vari oggetti hanno campi diversi fra loro.
Ad esempio ho l'oggetto cacciavite che fa parte della sezione meccanica e che è individuato da peso e diametro, ho l'oggetto colore che fa parte della sezione pittura ed è identificato da una formula chimica, ho l'oggetto interruttore che fa parte della sezione elettrica che è identificato da marca e modello.
Ho ipotizzato che una sezione può contenere molti oggetti ma un singolo oggetto può appartenere al massimo ad una sezione.
Ho pensato di costruire tre diverse tabelle. OGGETTO MECCANICO, OGGETTO ELETTRICO E OGGETTO PITTURA, ognuna di esse con i diversi campi.
Non mi sembra un granchè ma è l'unica soluzione che mi è venuta in mente.
Se qualcuno avesse dei consigli grazie

6 Risposte

  • Re: Progettazione database Magazzino

    I 'vari' oggetti di cui parli sono Articoli, non Magazzino.
    Quelle che definisci 'sezioni' si chiamano Categorie (poi possono esservi anche delle SottoCategorie).
    Per i campi disomogenei è normale che accada, ed i casi sono due:
    1) li tieni tutti in una sola tabella, oppure
    2) puoi creare le rispettive tabelle e relazionare l'articolo
    Personalmente scelgo la (1)
  • Re: Progettazione database Magazzino

    Convergo con gibra sulla soluzione 1).
  • Re: Progettazione database Magazzino

    Grazie, ma cosi facendo non avrei un sacco di campi a null? Cioè se dovessi inserire un articolo avrei la tabella articolo con tutti i campi possibili ma per ogni articolo dovrei porre a null molti campi, visto che per l'articolo meccanica i campi relativi alle sezioni elettrico e pittura non sono pertinenti
  • Re: Progettazione database Magazzino

    Quanti campi si discostano in base all'articolo lo puoi sapere solo tu.
    Se non puoi avere i NULL, allora come ti ho detto crea una tabella per ogni tipologia di articolo e relaziona l'articolo.
    Diventa più macchinoso gestire la cosa, ecco perché ti ho dato le due alternative, in quanto in entrambi i casi vi sono pro e contro.
  • Re: Progettazione database Magazzino

    Secondo me, le possibili soluzioni sono due come mostrato nel file png allegato
    La seconda soluzione, che è la più semplice, può essere adottata nel caso che il campo Oggetto cambia sempre il suo contenuto.
    La struttura è dinamica quindi ogni Oggetto può avere le sue varie caratteristiche con i relativi valori.
    Allegati:
    21646_5325596db687e0e75a453d78a83e1f88.png
    21646_5325596db687e0e75a453d78a83e1f88.png
  • Re: Progettazione database Magazzino

    reynold ha scritto:


    Grazie, ma cosi facendo non avrei un sacco di campi a null? Cioè se dovessi inserire un articolo avrei la tabella articolo con tutti i campi possibili ma per ogni articolo dovrei porre a null molti campi, visto che per l'articolo meccanica i campi relativi alle sezioni elettrico e pittura non sono pertinenti
    Se Peso e Diametro, Formula chimica e Marca e Modello possono essere raccolti in un unico campo di testo ti merita fare una sola tabella articoli, (i tuoi oggetti per intenderci) e referenziare un solo campo per la categoria (sezione) a cui appartengono.
    Anche perchè se un domani l'azienda dovesse trattare un nuovo articolo che non appartiene a nessuna delle sezioni prevista dovresti creare una nuova tabella (Oggetto). Quando poi devi fatturare devi andare a pescare i riferimenti da 3 archivi diversi...
Devi accedere o registrarti per scrivere nel forum
6 risposte