Caselle combinate dipendenti

di il
15 risposte

Caselle combinate dipendenti

Buongiorno! Stamattina vorrei esporvi un problema che ancora non sono riuscito a risolvere al meglio e soprattutto non so se devo agire a livello di tabelle o a livello di maschere.

Ho una tabella “Allestimenti” (Che ha una relazione uno a molti con la tabella “Mezzi” in cui sono elencati i mezzi) in cui sono prensenti i seguenti campi: IDAllestimento, Mezzo, TipoAllestimento. E poi ho una tabella “Manutenzione Allestimenti”, naturalmente tra la tabella “Allestimenti” e la tabella “Manutenzione Allestimenti” è presente una relazione uno a molti. 

La tabella “Manutenzione Allestimenti” ha i seguenti campi: IDManutenzioneAllestimenti, Mezzo, AllestimentoManutenuto. Vorrei la seguente cosa “naturale”, quando nella tabella “Manutenzione Allestimenti” scelgo il mezzo, quando vado ad AllestimentoManutenuto mi dovrebbero uscire solo gli allestimenti relativi al mezzo scelto nella casella precendete. Ho controllato in giro, ho trovato esempi in cui si agisce a livello di maschere, ma da quando ho capito è sempre meglio agire a livello di tabelle. 

Questa cosa che vi ho descritto come si chiama? Combo a cascata? Ma soprattutto non so come si fa. Potresti darmi ualche suggerimento?

15 Risposte

  • Re: Caselle combinate dipendenti

    Scenario confuso.

    Allestimenti(1)-- >(M)Mezzi…?

    Se così è allora 1 Mezzo può avere solo 1 Allestimento… e questo non chiude bene lo scenario, visto che poi vorresti selezionare conla combo solo tra gli allestimenti del mezzo e dal punto di vista relazionale non è possibile.

    Per fare quello che chiedi serve una Relazione M-M

    Allestimenti(1)-- >(M)AllestimentiMezzo(M)< ----(1)Mezzi

    A questo punto la Tabella Manutenzioni Allestimenti va basata sulla [AllestimentiMezzo] ed allora si che potrebbe aver senso quello che dici…

    Se alleghi uno screenshot del diagramma ER sarebbe meglio.

  • Re: Caselle combinate dipendenti

    01/06/2023 - @Alex ha scritto:


    Scenario confuso.

    Allestimenti(1)-- >(M)Mezzi…?

    Se così è allora 1 Mezzo può avere solo 1 Allestimento… e questo non chiude bene lo scenario, visto che poi vorresti selezionare conla combo solo tra gli allestimenti del mezzo e dal punto di vista relazionale non è possibile.

    Per fare quello che chiedi serve una Relazione M-M

    Allestimenti(1)-- >(M)AllestimentiMezzo(M)< ----(1)Mezzi

    A questo punto la Tabella Manutenzioni Allestimenti va basata sulla [AllestimentiMezzo] ed allora si che potrebbe aver senso quello che dici…

    Se alleghi uno screenshot del diagramma ER sarebbe meglio.

    Ciao Alex, ti mostro la tabella delle relazioni:

  • Re: Caselle combinate dipendenti

    Quindi hai fatto come dico io… forse non era ben chiaro ora meglio.

    La Tabella però che non hai collegato è sbagliata, ed infatti non l'hai collegata…!!!

    La manutenzione come l'hai disegnata nbon è di Allestimento, ma di Mezzo, quindi serve capire a cosa fai manutenzione… io non l'ho capito dalla descrizione, ma dallo schema posso dire che fai manutenzione al Mezzo.

    Se devi manutenere l'allestimento serve registrare la manutenzione all'allestimento del Mezzo, ovvero riferirsi alla Tabella [Allestimenti]

  • Re: Caselle combinate dipendenti

    Allora cerco di essere più chiaro: abbiamo un mezzo, diciamo un camion, chiamiamolo camion1, che è scarrabile cioè dove è possibile montarci sia un cassone che una betoniera.

    Allora cosa intendo io: Allestimenti mezzo: Scarrabile e cassone. 

    Poi vorrei separare la manutenzione del mezzo e la manutenzione degli allestimenti, cioè se cambio l olio del motore allora dico che è una manutenzione del mezzo se invece faccio la manutenzione alla pompa della betoniera dico che è una manutenzione dell'allestimento. Logicamente poi quando faccio la scheda di manutenzione del mezzo unisco le due manutenzioni ma in fase di caricamento sul database le vorrei separate.

    A questo punto quando vado a fare la manutenzione degli allestimento e scelgo come mezzo il camion 1 vorrei che la scelta dell allestimento fosse circoscritta a cassone e betoniera. 

    Nella tabella ManutenzioneAllestimenti c'è, ma non si vede dalla foto, un campo chiamato IDAllestimento e dovrei collegarla mediante questo alla tabella Allestimenti. Allestimenti (1), ManutenzioneAllestimenti (Molti).

  • Re: Caselle combinate dipendenti

    Ecco la tabella delle relazioni aggiornata:

  • Re: Caselle combinate dipendenti

    Come si può vedere nella tabella ManutenzioneAllestimenti c'è un campo chiamato IDMezzo (poi avrà un ‘etichetta  chiamata Mezzo) una volta che in quel campo effettuo la scelta del mezzo nel campo IDAllestimento(che poi avrà un’etichetta chiamata allestimento da manutenere) dovrebbero uscire solo e soltanto gli allestimenti presenti sul mezzo scelto.

  • Re: Caselle combinate dipendenti

    Adesso manca solo da cambiare il titolo e la sezione con

    “Relazione tra tabelle” e “progettazione database” rispettivamente.

  • Re: Caselle combinate dipendenti

    01/06/2023 - Nat ha scritto:


    Come si può vedere nella tabella ManutenzioneAllestimenti c'è un campo chiamato IDMezzo (poi avrà un ‘etichetta  chiamata Mezzo) una volta che in quel campo effettuo la scelta del mezzo nel campo IDAllestimento(che poi avrà un’etichetta chiamata allestimento da manutenere) dovrebbero uscire solo e soltanto gli allestimenti presenti sul mezzo scelto.

    - Togli gli spazi ai nomi dei campi

    - Tabella ManutenzioneAllestimenti non mi è chiara. Perchè IDMezzo e IDManutenzioneAllesti… ?

  • Re: Caselle combinate dipendenti

    01/06/2023 - Nat ha scritto:


    Come si può vedere nella tabella ManutenzioneAllestimenti c'è un campo chiamato IDMezzo (poi avrà un ‘etichetta  chiamata Mezzo) una volta che in quel campo effettuo la scelta del mezzo nel campo IDAllestimento(che poi avrà un’etichetta chiamata allestimento da manutenere) dovrebbero uscire solo e soltanto gli allestimenti presenti sul mezzo scelto.

    La logica non va bene.

    Nella tabella [ManutenzioneAllestimenti] non deve esserci il riferimento ad IdMezzo… non ti pare sia un'informazione che viola la logica referenziale…?
    Se l'allestimento è associato ad un mezzo, dal momento in cui manutieni l'allestimento sai già a che mezzo quell'allestimento è collegato, quindi se devi estrarre la gestione manutentiva del Mezzo e dei suoi Allestimenti lo si fa con una query dedicata.

    Altra cosa che non torna… il tipo di Manutenzione differenziato Mezzi ed Allestimento…? Pare che gli Allestimenti non abbiano TipiDiMantenzione…
    Serve una Tabella che ti consenta di strutturare le manutenzioni ed attribuirle al Mezzo o agli allestimenti… e di conseguenza quando andrai a manutenere il tuo Allestimento avrai a disposizione le manutenzioni specifiche di quell'allestimento(se li hai gestiti).

    Le combo con le selezioni poi sono semplici da far funzionare solo se la struttura ER è veramente ben pensata.

    Serve ancora qualche ragionamento prima di iniziare ad inserire i dati.  

  • Re: Caselle combinate dipendenti

    01/06/2023 - @Alex ha scritto:


    01/06/2023 - Nat ha scritto:


    Come si può vedere nella tabella ManutenzioneAllestimenti c'è un campo chiamato IDMezzo (poi avrà un ‘etichetta  chiamata Mezzo) una volta che in quel campo effettuo la scelta del mezzo nel campo IDAllestimento(che poi avrà un’etichetta chiamata allestimento da manutenere) dovrebbero uscire solo e soltanto gli allestimenti presenti sul mezzo scelto.

    La logica non va bene.

    Nella tabella [ManutenzioneAllestimenti] non deve esserci il riferimento ad IdMezzo… non ti pare sia un'informazione che viola la logica referenziale…?
    Se l'allestimento è associato ad un mezzo, dal momento in cui manutieni l'allestimento sai già a che mezzo quell'allestimento è collegato, quindi se devi estrarre la gestione manutentiva del Mezzo e dei suoi Allestimenti lo si fa con una query dedicata.

    Altra cosa che non torna… il tipo di Manutenzione differenziato Mezzi ed Allestimento…? Pare che gli Allestimenti non abbiano TipiDiMantenzione…
    Serve una Tabella che ti consenta di strutturare le manutenzioni ed attribuirle al Mezzo o agli allestimenti… e di conseguenza quando andrai a manutenere il tuo Allestimento avrai a disposizione le manutenzioni specifiche di quell'allestimento(se li hai gestiti).

    Le combo con le selezioni poi sono semplici da far funzionare solo se la struttura ER è veramente ben pensata.

    Serve ancora qualche ragionamento prima di iniziare ad inserire i dati.  

    Alla prima domanda si, ho capito. Hai perfettamente ragione. Il tipo di manutenzione degli allestimenti sarà un uleriore tabella che ancora devo fare, in pratica una cosa simile a quello che ho fatto per la manutenzione del mezzo. 

    Però c'è una cosa che non capisco, quando vado alla tabella di manutenzione degli allestimenti io non posso ricordarmi l allestimento dove è, come faccio? Ecco perché prima volevo scegliermi il mezzo e poi volevo che il database mi suggerisse gli allestimenti. Mettiamoci nei panni di un utente finale che va a caricare la manutenzione dell allestimento, come lo trova? Lui conosce solo il mezzo e il nome dell allestimento, magari ci possono essere allestimenti simili ma riferiti a mezzi diversi, allora che si fa? Ecco perché mi sarebbe piasciuto scegliere il mezzo: una cosa di questo tipo: dove si trova l allestimento che hai manutenuto? camion1, bene ora scegli tra betoniera e cassone. 

  • Re: Caselle combinate dipendenti

    01/06/2023 - By65Franco ha scritto:


    01/06/2023 - Nat ha scritto:


    Come si può vedere nella tabella ManutenzioneAllestimenti c'è un campo chiamato IDMezzo (poi avrà un ‘etichetta  chiamata Mezzo) una volta che in quel campo effettuo la scelta del mezzo nel campo IDAllestimento(che poi avrà un’etichetta chiamata allestimento da manutenere) dovrebbero uscire solo e soltanto gli allestimenti presenti sul mezzo scelto.

    - Togli gli spazi ai nomi dei campi

    - Tabella ManutenzioneAllestimenti non mi è chiara. Perchè IDMezzo e IDManutenzioneAllesti… ?

    Si, li tolgo grazie! Al limite uso le quadre ajahha.

    Perché volevo che scelto il mezzo , il database mi suggerisse con una combo gli allestimenti presenti su quel mezzo, in modo tale che non ci può essere possibilità di sbaglio. Non so come spiergalo più

  • Re: Caselle combinate dipendenti

    01/06/2023 - Nat ha scritto:

    Si, li tolgo grazie! Al limite uso le quadre ajahha.

    Perché volevo che scelto il mezzo , il database mi suggerisse con una combo gli allestimenti presenti su quel mezzo, in modo tale che non ci può essere possibilità di sbaglio. Non so come spiergalo più

    Hai già la relazione tra Mezzo e (molti)  Allestimento, mi sembra che non ti manca altro per fare quella combo.

    Sbaglio o non ho ben capito ?

    P.S. se ci metti le parentesi quadre non te parlo più !!!!   ;)))

  • Re: Caselle combinate dipendenti

    01/06/2023 - Nat ha scritto:

    , li tolgo grazie! Al limite uso le quadre ajahha.

    Perché volevo che scelto il mezzo , il database mi suggerisse con una combo gli allestimenti presenti su quel mezzo, in modo tale che non ci può essere possibilità di sbaglio. Non so come spiergalo più

    Non è che non si è capito… il problema è che non hai capito come strutturare correttamente, e vorresti il risultato senza sporcarti le mani …!!!

    Ribadisco che se non capisci come si strutturano le tabelle in logica “cataloghi”… quello che vuoi fare non lo fai, oltretutto non hai capito che non ha senso fare Mille tabelle, serve fare quelle giuste.

    La tabella TipiManutenzione deve essere solo 1 non 2 o 3, i TipiManutenzinoe poi sono aggregabili per attributo che può essere il Mezzo oppure l'Allestimento e ti costruisci in questo modo i cataloghi di manutenzione per ogni attributo.

    Nel tuo caso specifico dovrai fare 2 Tabelle di aggregazione in quanto i Mezzi e gli allestimenti sono 2 enti distinti.

    Fatto questo, se l'allestimento è il Cassone, nella combo vai a recuperare le Manutenzioni dalla Tabella ManutenzioneAllestimenti che è la centrale di Allestimenti(1)---> (M) ManutenzioneAllestimenti  (M) <---(1)TipiManutenzione filtrando per TipoAllestimento

    Mi pare tu ti stia perdendo in 1 bicchiere d'acqua come i conti matematici…!

  • Re: Caselle combinate dipendenti

    Una curiosità/chiarimento su tabelle Mezzi e Allestimenti :

    • allo stato attuale puoi avere un Mezzo con tanti possibili Allestimenti
      • domanda:
        • Se ti serve sapere l'allestimento attuale del Mezzo come fai ?  ti interessa saperlo ?
        • Oppure ti basta sapere che può essere allestito con varie configurazioni ?

     

    - In tabella Mezzi il campo Modello lo metterei in una tabella ModelliMezzi 

    - In tabella Allestimenti il campo Modello lo metterei in una tabella ModelliAllestimenti

    - In tabella Allestimenti il campo Marca lo metterei in una tabella ModelliMarca

Devi accedere o registrarti per scrivere nel forum
15 risposte