Newsgroup: it.comp.appl.access
Titolo: Aiuto su una struttura di database

Salve a tutti,
è la prima volta che scrivo in questo newsgroup... spero di non
fare una domanda troppo banale o già affrontata (mi sembra di no).
Dovrei gestire un database di prodotti in forma ricorsiva. Mi spiego.
Ci sono dei prodotti primitivi che l'azienda compra direttamente
dal fornitore e vengono messi in magazzino.
L'azienda poi costruisce altri prodotti, che andranno insieme agli
altri in magazzino, formati da più prodotti primitivi.
E così a seguire, l'azienda potrebbe costruire dei macroprodotti
formati da prodotti a loro volta formati da prodotti primitivi.
Per esempio, un'azienda di elettronica compra i componenti base
(resistenze, condensatori, circuiti stampati, connettori, ecc.).
Questi sono i prodotti base, ognuno dei quali si trova in magazzino
ed ha un numero identificativo univoco.
L'azienda poi progetta e produce schede elettroniche, ovviamente
formate da un circuito stampato e tanti componenti primitivi
(resistenze, condensatori, ecc.).
L'azienda, poi, potrebbe progettare e produrre apparati interi che
sono formati da più schede e magari cablaggi vari che a loro volta
sono formati da altri componenti di magazzino (primitivi e non) ecc.
ecc.
Alla fine sarebbe bello poter ottenere la distinta (composizione) di
un prodotto sia in forma implosa (solo i sotto-elementi che lo
compongono) sia in forma esplosa (scomponendo fino ai minimi termini,
prodotti primitivi, i sotto-elementi).
Io avevo pensato di fare due tabelle di questo tipo:
PRODOTTI
Codice - Numerico (chiave primaria)
Descrizione - Testo
DISTINTE
Codice - Numerico (chiave esterna)         \ chiave
Cod_Elemento - Numerico (chiave esterna)   / primaria
Quantità - Numerico
Secondo voi va bene questa struttura oppure no?
E quali potrebbero essere le Query per la visualizzazione di una
distinta
(esplosa o implosa) di un prodotto?

 Secondo voi va bene questa struttura oppure no?
Se per Distinte intendi una tabella d'appoggio che autorelaziona la tabella
prodotti con se stessa e se per chiave primaria di questa tabella intendi
l'insieme dei due codici (padre e figlio) allora la struttura va bene.
In effetti non e' una novita', come potrai immaginare non sei il primo che
si occupa di un gestionale dedicato a ditte che assemblano.
Personalmente non condivido la scelta di un tipo numerico per il codice
prodotto, credo sia preferibile un tipo testo.
Sib

 si occupa di un gestionale dedicato a ditte che assemblano.
Mi sapresti dire con quale tipo di query posso esplodere la distinta di
un prodotto complesso? Intendo scomporre i vari componenti di un
prodotto
in modo ricorsivo fino ad arrivare agli elementi non più riducibili.

 in modo ricorsivo fino ad arrivare agli elementi non pių riducibili.
Non puoi farlo con una query, puoi farlo da codice o puoi costruire
dinamicamente una stringa sql.
Ma il problema e': sei proprio sicuro di avere bisogno di questo?
Facciamo un esempio:
una unita' centrale e' composta da case, MB, ram, scheda video ecc.
Un pc e' composto da una unita' centrale, un monitor, una tastiera ecc.
ma tu non devi scomporre in questo modo, il pc devi definirlo come:
case, MB,ram scheda video, monitor, tastiera, ecc
In questo modo (che a mio avviso e' quello corretto) hai un solo
sottolivello e non ti perdi inutilmente in questi meandri.
Sib

pozz ha scritto:

firuli'.....firula'.....
stavolta nun me faccio frega'......
diciamo che 2 o 3 (fino a 6 va bene) mesi fa ci sono stati un paio di
post su questo argomento oggetto + o - vba per distinta base e/o VBA:
alberi e visite ricorsive. In uno era coinvolto un tal "ringo"
nell'altro non mi ricordo. Se attraverso google, o chi per lui, li
reperisci, controlla le risposte a firma di "Alessandro Cara" (cercare
per quest'ultimo non te lo consiglio arriverebbe un "botto" di roba,
quasi tutte "bischerate").
Cmq con una query non te la cavi
firuli'.....firula'....
o troppe gatte a cui pensa'
--
a.cara
togli qualcosa dall'email

 Sib
Ciao Sib se però diventa seriale la creazione di quelle macchine diventa
scomodo "scaricare" il tutto magari più volte.
Io ho risolto con una tabella "scheda_tecnica". In realtà tu hai un articolo
finito costituito dalle sue cento parti. Quando vuoi scaricare il prodotto
Unità centrale 10 volte e il prodotto notebook 5 volte apri il rst, vai al
primo rst (il pc) vedi se c'è la relativa scheda_tecnica e ti scarichi x10
volte ciscuna componente, poi vai al prossimo.
e' lunghetto ma non difficilissimo
MAssimiliano

 e' lunghetto ma non difficilissimo
Certo, con una ricorsione da codice si puo' definire pefino "facile" finche'
si parla di scaricare un magazzino.
Il problema, secondo me, e' la visualizzazione sui documenti.
Se poi non ti interessa avere il dettaglio in bolla e fattura allora il
problema non si pone, fai tutto da codice  e via.
Sib


Neanche Sib, ci metti una query di unione e ordini in base al riferimento
MAssimiliano

 ha scritto nel messaggio

Scusa ma cosa unisci se non sai neanche quanti sottolivelli hai?
sib


Questa dei sottolivelli m'era sfuggita.
MAssimiliano

 Questa dei sottolivelli m'era sfuggita.
Era questo che intendevo prima.
Lui vuole dire:
A e' composto da 2 B e 1 C
D e' composto da 1F e 2 A
mentre io gli dicevo di definire D come composto da 4B, 2 C e 1 F
Altrimenti gli viene fuori una struttura dal numero di sottolivelli
indefinito
Sib