Database per distinta base di produzione

di il
6 risposte

Database per distinta base di produzione

Buonasera a tutti, chi mi potrebbe dare consigli su come costruire diverse distinte di produzione partendo da un catalogo prodotti unico?
Non voglio fare una copia statica delle parti per ogni distinta (BOM), ma voglio collegare le parti in maniera tale che una modifica al catalogo si rifletta in tutte le distinte dove tale parte è presente. Logicamente devo poter assegnare proprietà specifiche per ogni diversa distinta. Lo schema teorico è questo in allegato.


6 Risposte

  • Re: Database per distinta base di produzione

    tuco7 ha scritto:


    ...ma voglio collegare le parti in maniera tale che una modifica al catalogo si rifletta in tutte le distinte dove tale parte è presente...
    Questo non mi è chiaro... Un esempio di implementazione per delle Distinte basi, potrebbe prevedere 3 tabelle:
    1) Articoli - dove c'è tutta l'anagrafica relativa ad un dato particolare;
    2) Distinte basi - Relazionata alla precedente, identifica tutti gli articoli per cui esiste una distinta;
    3) Materiali - Relaziona M-M le due precedenti e ti permette di identificare i vari componenti per ogni distinta.

    Riflettere le modifiche va inteso come:
    a) un articolo può essere una distinta, che a sua volta è compresa in un'altra distinta? Se è così, con una struttura tipo quella sopra non hai problemi.
    b) Le modifiche all'anagrafica di un articolo devono aggiornarsi in automatico nelle distinte? Di nuovo nessun problema. È sufficiente la Join nelle query.
  • Re: Database per distinta base di produzione

    Non mi serve per il momento una tabella materiali, sarei già contento di riuscire fare come l'immagine allegata definendo come proprietà specifiche solo le quantità delle parti nelle varie BOMs.
    Il problema è che mi servirebbe un esempio più pratico per iniziare: al momento ho definito solo la tabella Catalogo parti
  • Re: Database per distinta base di produzione

    Ma veramente l'unica che vedo opzionale è la tabella di cui al punto 2, che potrebbe essere considerata una relazione 1-1 con la prima. Pertanto la si potrebbe inglobare rendendo però questa molto pesante e densa d'informazioni.

    Senza la tabella M-M non saprei come tu possa implementare la logica. Quei BOM che tu mostri nell'immagine altro non sono che dei risultati di query:
    Ipotizzando una struttura tipo:
    - Articoli (Codice, Descrizione, UnitaDiMisura, Costo, ...)
    - DistinteBasi (CodicePadre, CodiceComponente, QuantitaNecessaria, ...)
    Ti basta davvero una sola Join. Vincoli i campi CodicePadre e CodiceComponente in FK con il campo Codice e hai tutti i dati.
    Personalmente non vedo di buon occhio il campo Costo compreso nella tabella articoli (meglio una tabella dedicata visto che uno stesso articolo può avere più costi - già solo a differenza di fornitore), ma li dipende anche dalla situazione in cui sei e come ti serve gestirla...
  • Re: Database per distinta base di produzione

    Sgrubak ha scritto:


    tuco7 ha scritto:


    ...ma voglio collegare le parti in maniera tale che una modifica al catalogo si rifletta in tutte le distinte dove tale parte è presente...
    Questo non mi è chiaro... Un esempio di implementazione per delle Distinte basi, potrebbe prevedere 3 tabelle:
    1) Articoli - dove c'è tutta l'anagrafica relativa ad un dato particolare;
    2) Distinte basi - Relazionata alla precedente, identifica tutti gli articoli per cui esiste una distinta;
    3) Materiali - Relaziona M-M le due precedenti e ti permette di identificare i vari componenti per ogni distinta.
    grazie innanzitutto per il tempo che stai dedicando al mio problema...
    non avevo ben capito, scusami ma non sono molto pratico:
    La tua tabella Materiali corrisponde alla tabella BOM in cui si definiscono quantità e codici;
    la tabella distinte basi rappresenta il catalogo di tutti i codici;
    la tabella articoli sono attributi specifici per ogni codice.

    Io uso la notazione "anglofona" dove per BOM si identifica l'italiana "distinta base", in cui sono presenti codici, quantità e altro.
    Scusami ancora per la mia "noob-ietà", ma dovrei quindi creare una tabella diversa per ogni BOM (ossia Materiali)?
  • Re: Database per distinta base di produzione

    tuco7 ha scritto:


    La tua tabella Materiali corrisponde alla tabella BOM in cui si definiscono quantità e codici;
    Circa... Raccoglie tutte le informazioni per creare una Bill Of Materials (BOMs). Vi sarà un campo dedicato al codice che identifica il padre e a questo verrà correlato il componente per crearla:
    
    Id_Materiali		CodiceBOM	Componente	Quantita
    1			ABBC		A			1
    2			ABBC		B			2
    3			ABBC		C			1
    4			DEE		D			1
    5			DEE		E			2
    6			ABDE		A			1
    7			ABDE		B			1
    8			ABDE		D			1
    9			ABDE		E			1
    

    tuco7 ha scritto:


    la tabella distinte basi rappresenta il catalogo di tutti i codici;
    No, quella è la tabella Articoli, che rifacendoci all'esempio di prima:
    
    Id_Articolo		Codice		Descrizione
    1			A		Articolo A
    2			B		Articolo B
    3			C		Articolo C
    4			D		Articolo D
    5			E		Articolo E
    6			ABBC		Articolo ABBC
    7			DEE		Articolo DEE
    8			ABDE		Articolo ABD
    
    La tabella [Distinte Basi], la puoi relazionare 1-1 con questa ed aggiungere tutte le informazioni relative alla distinta. Data la natura della relazione, puoi operare con la sola tabella Articoli, ma dipende da quante informazioni relative alla sola distinta base vuoi organizzare. Se son poche va bene una tabella, altrimenti meglio dividerle. Soprattutto se poi effettuerai molte query su quelle informazioni. Avrai degli indici dedicati che agevoleranno le interrogazioni verso un set di dati più limitato, migliorando l'efficienza.

    tuco7 ha scritto:


    Scusami ancora per la mia "noob-ietà", ma dovrei quindi creare una tabella diversa per ogni BOM (ossia Materiali)?
    Questa domanda equivale a blasfemia... Assolutamente no. La tabella sarà una sola e la tua BOM sarà un report ottenuto da una query parametrizzata, ad esempio
    SELECT Componente, Quantita
    FROM Materiali
    WHERE CodiceBOM = @CodiceBOMCheStoCercando
    Nel momento in cui valorizzi il parametro ad esempio a "DDE" ed esegui la query, il risultato sarà:
    
    Componente	Quantita
    D			1
    E			2
  • Re: Database per distinta base di produzione

    Grazie mille, le ombre nella mia testa cominciano a diradarsi. Il problema ora è applicare questi concetti al software che utilizzo
Devi accedere o registrarti per scrivere nel forum
6 risposte