Consigli database per deposito pneumatici

di il
20 risposte

20 Risposte - Pagina 2

  • Re: Consigli database per deposito pneumatici

    Ho cambiato alcune cose, secondo te può funzionare così?
    Tab. Clienti:
    Id
    Cognome
    Nome
    Città
    Indirizzo
    Telefono
    Mail

    Tab. Vetture:
    Id
    Marca
    Modello
    Targa
    Id_cliente

    Tab. Collocazione:
    Id
    Data
    Id_vettura
    Id_scaffale

    Tab. Scaffali:
    Id
    Fila
    Posizione

    Tab. Pneumatici:
    Id
    Misura
    Marca
    Modello
    Dot
    Mm
    Id_vettura

    Le relazioni sono:
    Clienti.id uno a molti con vetture.id_cliente
    Vetture.id uno a molti con pneumatici.id_vettura
    Vetture.id uno a molti con collocazione.id_vettura
    Scaffali.id uno a molti con collocazioni.id_scaffale

    Cosa ne pensi?
    Anche qui pero la tabella scaffali deve essere già piena con i record:
    Id 1 fila 1 posizione A
    Id 2 fila 1 posizione B
    Id 3 fila 1 posizione C
    Ecc.. Per ogni posizione del mio magazzino

    Per la qta massima di pneus per scaffale mi conviene impostarlo e calcolarlo con una query o aggiungere alla tabella scaffali un campo qta che aggiornò di volta in volta?
  • Re: Consigli database per deposito pneumatici

    La tabella Scaffali deve avere un campo Capienza. Il valore Capienza deve essere fisso e non cambiare mai.
    La tabella Pneumatici non deve essere considerata RELATIVA a ogni singola Vettura (è errato il campo Pneumatici.IDVettura). Un Pneumatico (invento) Michelin-Montagna-50 cm-300 dot-20 cm può essere montato su più Vetture. Vetture e Pneumatici sono in relazione molti-a-molti.
    Attenzione! Confesso che c'è qualcosa in ballo che mette in crisi le mie conoscenze.
    Di ogni IDVettura tu avrai non più di 4 pneumatici (questo è sicuro). Secondo me si potrebbero scegliere 2 strade:
    A) Una tabella di congiunzione VP (Vetture/Pneumatici) stabilirebbe quanti e quali IDPneumatici sono associati a una IDVettura.
    B) La tabella VP, per ogni Vettura avrà un recordset al massimo di 4 record. Il concetto di "al massimo" e 4 è un valore relativamente piccolo, avrebbe spinto me a suggerirti 4 campi IDPneumatico nella tabella Collocazioni.
    Ripensandoci bene, sconsiglio la soluzione B.

    Riprendiamo il discorso sulla tabella VP. Ti chiedo:
    Tu preferiresti specificare, per ogni Pneumatico se esso stava a SxA, DxA, SxP, DxP oppure no?
    Io sceglierei questa via con 2 vantaggi:
    - Evitiamo un campo Quantità in tabella VP che ci darebbe rogne di calcolo per future query da confrontare con il campo Scaffali.Capienza
    - Un campo PosizionePneumatico (che può avere uno dei 4 valori SxA, DxA, SxP, DxP). Questo campo ti tornerebbe utile per ricordare dove sistemare i pneumatici secondo le regole di scambio...

    La tabella Collocazioni sarebbe poi così:
    IDCollocazione
    DataCollocazione
    IDScaffale
    IDVettura
    qui non mettiamo QuantitàPneumatici. Questo valore ce lo dirà una espressione DCount che conterebbe opportuni record da una query ecc...Questa query (per te preziosissima) occorre progettarla per bene...ma...
    Non ci hai detto se può capitare di sistemare 4 pneumatici della stessa Vettura in 4 scaffali diversi. Immaginiamo che stai strapieno negli scaffali, hai fretta e non hai voglia di risistemare qualcosa che ti ottimizzi le logiche spaziali. Questo può accadere? Oppure sei sempre ligio nel sistemare tutti i pneumatici di una Vettura in un solo Scaffale?
  • Re: Consigli database per deposito pneumatici

    Io ho proposto quello schema perché do per obbligatorio che tutte le gomme di una vettura devono necessariamente trovarsi nello stesso scaffale. Perche pneumatici id vettura non va bene? Io ho ragionato cosi correggimi se sbaglio. Ogni cliente può avere più vetture quindi divido i dati del cliente da quelli delle vetture. Ogni auto a più di un pneumatico quindi relaziono la tabella vetture uno a monti con la tabella pneumatici visto che il pneumatico fa riferimento a quella specifica vettura e solo a quella e poi in collocazione ci metto solo l'ID della vettura perche come ho detto poco fa obbligo le gomme di una vettura a stare per forza sullo stesso scaffale. Ho messo tutto su access e con delle query riesco a contare le gomme che sono su un singolo scaffale e a trovare lo scaffale e le gomme in base al nominativo inserto. Posso inviati il file cosi puoi darci un occhiata. Pero in linea di massima sembra funzionare. Ho riletto ora il tuo post e forse su qualcosa non ci siamo capiti bene, te mi dici che il pneumatico Michelin montagna ecc.. Può essere montanto su più vetture, ma io con la tabella pneumatici non intendo questo. Per me la tabella pneumatici é la tabella che identifica tutti i pneumatici che ho nel magazzino e li identifica univocamente con l'ID della tabella. Non intendo la tabella pneumatici come una lista a cui attingere per non stare ogni volta a riscrivere.
  • Re: Consigli database per deposito pneumatici

    calida1982 ha scritto:


    te mi dici che il pneumatico Michelin montagna ecc.. Può essere montanto su più vetture, ma io con la tabella pneumatici non intendo questo. Per me la tabella pneumatici é la tabella che identifica tutti i pneumatici che ho nel magazzino e li identifica univocamente con l'ID della tabella. Non intendo la tabella pneumatici come una lista a cui attingere per non stare ogni volta a riscrivere.
    Se ragioni così la TUA tabella Pneumatici rischia di violare un principio di normalizzazione (che parolaccia). Se nello Scaffale 7 con Capienza 12 ci sono 4 Pneumatici di Rossi, 4 di Verdi e 4 di Bianchi e tutti e 3 Clienti montano lo stesso modello-pneumatico con stesse caratteristiche, tu saresti costretto a digitare 12 volte gli stessi valori dei campi Marca/Modello/Misura/Dot/Mm. Ciò non è conveniente.
    Riepilogando io vedrei così la struttura:

    Clienti
    IDCliente
    Cognome
    Nome
    Città
    Indirizzo
    Telefono
    Cellulare
    e-mail

    Vetture
    IDVettura
    MarcaVettura
    ModelloVettura
    Targa
    IDCliente

    Pneumatici
    IDPneumatico
    MarcaPneumatico
    ModelloPneumatico
    Misura
    Dot
    Mm

    VP (Vetture-Pneumatici)
    IDVP
    IDVettura
    IDPneumatico
    PosizionePneumatico (qui dentro ci scrivi uno fra i valori SxA, DxA, SxP, DxP)

    Scaffali
    IDScaffale
    Fila
    Colonna
    Capienza

    Collocazioni
    IDCollocazione
    DataCollocazione
    IDScaffale
    IDVettura

    Relazioni:
    Clienti.IDCliente uno-a-molti con Vetture.IDCliente
    Vetture.IDVettura uno-a-molti con VP.IDVettura
    Pneumatici.IDPneumatico uno-a-molti con VP.IDPneumatico
    Vetture.IDVettura uno-a-molti con Collocazioni.IDVettura
    Scaffali.IDScaffale uno-a-molti con Collocazioni.IDScaffale

    Ancora un dubbio. Come si fa a stabilire che uno Scaffale ha una capienza di n Pneumatici? Una gomma per una Panda non sarà mai tanto larga quanto quella di un fuoristrada.
  • Re: Consigli database per deposito pneumatici

    Hai ragione per quel che riguarda i campi marca modello e misura, ma i campo dot é la data di fabbricazione della gomma che ovviamente non é la stessa per tutte e i mm sono i mm di battistrada rimanenti al momento del deposito(onde evitare clienti che depositano pneus finiti e al rimontaggio dicono che quando li hanno depositati erano nuovi) e ovviamente anche questi spesso sono diversi da gomma a gomma. Per il fatto di scrivere 4 volte potrei integrare nel programma che gestirà il DB una funzione che compilata la prima gomma con marca modello misura copi automaticamente i dati nelle alle textbox cosi se sono tutti uguali dovrò solo compilare i campi dot e mm altrimenti andro a modificare se dovessero essere diverse
  • Re: Consigli database per deposito pneumatici

    calida1982 ha scritto:


    Hai ragione per quel che riguarda i campi marca modello e misura, ma i campo dot é la data di fabbricazione della gomma che ovviamente non é la stessa per tutte e i mm sono i mm di battistrada rimanenti al momento del deposito
    Non lo sapevo. Allora la tabella Pneumatici avrà i campi:
    IDPneumatico
    Marca
    Modello
    Misura

    I campi Dot e Mm devi farli migrare nella tabella VP.

    Mmmmhhh...ora tutto mi ritorna meglio. Io aggiusterei la struttura.

    Clienti uno-a-molti Vetture
    Vetture uno-a-molti Collocazioni
    La tabella VP si chiamerà DettagliCollocazioni e avrà i seguenti campi:
    IDDettaglioCollocazione
    IDCollocazione
    IDPneumatico
    PosizionePneumatico
    Dot
    Mm
    Collocazioni uno-a-molti DettagliCollocazioni (attraverso il campo IDCollocazione)
    Pneumatici uno-a-molti DettagliCollocazioni (attraverso il campo IDPneumatico)
    Scaffali uno-a-molti Collocazioni
    Ovviamente la vecchia relazione Vetture.IDVettura uno-a-molti con VP.IDVettura va cancellata.

    calida1982 ha scritto:


    Per il fatto di scrivere 4 volte potrei integrare nel programma che gestirà il DB una funzione che compilata la prima gomma con marca modello misura copi automaticamente i dati nelle alle textbox cosi se sono tutti uguali dovrò solo compilare i campi dot e mm altrimenti andro a modificare se dovessero essere diverse
    Questo si risolve con la "casella combinata" (così si chiama tecnicamente quella che tutti conosciamo come "menu a tendina").
    Non sottovalutare l'utilità della tabella Marche. Quando devi scrivere Volkswagen, sicuramente qualche volta sbaglieresti. Avere una tabella delle Marche ti tornerebbe utile. Ti basterebbe scrivere soltanto i primi caratteri, gli altri li mostrerebbe automaticamente la casella combinata.
    Ti consiglio caselle combinate a tutti i campi chiave esterna delle tabelle figlie.
Devi accedere o registrarti per scrivere nel forum
20 risposte