Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    63

    [database] Per chi ha realizzato un gestionale

    Sto realizzando una applicazione gestionale che tra le varie tabelle ha anche una tabella movimenti. Tale tabella ha come chiave primaria un campo che si autoincrementa. Il problema è come comportarsi nell'anno di gestione successivo:

    conviene ripartire da zero con il contatore? Se si in che modo si riazzera il contatore?

    Oppure

    non è corretto utilizzare un contatore automatico per identificare il movimento contabile?

    Saluti

    Antonio

  2. #2
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    non mettere un contatore ma un campo strutturato pi o meno cosi

    un progressivo di un numero di cifre che scegli te e le ultime due cifre dell'anno

    es
    000003
    000103
    000203
    000303

    456703

    chiaramente l'anno successivo sara
    000004
    000104
    000204

    e cosi via, cmq puoi costruirlo come vuoi

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Re: [database] Per chi ha realizzato un gestionale

    Originariamente inviato da tony31
    conviene ripartire da zero con il contatore? Se si in che modo si riazzera il contatore?
    I documenti fiscali, e non, generalmente ripartono da 1 quando l'anno in corso viene cambiato. Per i movimenti di magazzino, che sono comunque un documento interno, questa regola potrebbe non essere applicata, mentre deve essere rispettata per quanto riguarda le fatture.

    non è corretto utilizzare un contatore automatico per identificare il movimento contabile?
    Se intendi "utilizzare un campo incrementale", credo che sia rischioso sfruttarlo per un simile meccanismo, poichè spesso i campi incrementali sono assoggettati al modo di lavorare del DBMS e quindi potrebbero non essere modificabili; suggerirei di utilizzare due campi in cui uno contiene l'ANNO corrente e l'altro contiene il NUMERO del documento (entrambi valori interi), poi utilizzare una tabella a parte in cui memorizzare l'ultimo anno usato nei documenti e l'ultimo numero, da incrementare ogni volta. Quando l'anno viene modificato, il numero viene riportato a 1.

    L'implementazione vera e propria dipende dal formato di database che non mi sembra sia stato indicato.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    63
    Grazie per la risposta


    ...ovviamente dovrei gestire tutto da software per strutturare un campo in questo modo. Altre alternative?

    Antonio

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da tony31
    ...ovviamente dovrei gestire tutto da software per strutturare un campo in questo modo. Altre alternative?
    Proprio ovviamente non direi... come dicevo prima, dipende dal gestore di database che utilizzi. Se utilizzi un database desktop, come Access, che funziona solo a livello client, cioè non è adatto per l'utilizzo in rete, probabilmente dovrai implementare tutto il meccanismo a livello di applicazione, scrivendo del codice.

    Se invece ti appoggi su una struttura database di tipo client/server, hai a disposizione prodotti quali SQL Server, InterBase, Oracle e altri ancora che possono metterti a disposizione strumenti come trigger, stored procedure, generatori e altro ancora in grado di permetterti lo spostamento della "logica" dall'applicazione al database stesso, supportando la problematica di accesso concorrente da più postazioni e da più programmi differenti (o modalità di interrogazione del DB, ad esempio da applicazione, sito Web, servizio o altro ancora), senza doverla ogni volta implementare all'interno dell'applicazione che vai a creare, sia essa un programma Windows, un sito Web, ecc.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    63
    x alka

    Non ho nominato il DB in quanto voglio progettarlo in modo indipendente dall'implementazione anche se sto facendo delle prove con Access. Ti ringrazio per la tua risposta e penso che sia più adatta rispetto alla precedente, ma non ho ben capito questo:

    "..poi utilizzare una tabella a parte in cui memorizzare l'ultimo anno usato nei documenti e l'ultimo numero, da incrementare ogni volta."

    Ciao

    Antonio

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    63
    ...non riesco a stare al passo con le risposte!!


  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da tony31
    Non ho nominato il DB in quanto voglio progettarlo in modo indipendente dall'implementazione anche se sto facendo delle prove con Access.
    Attenzione che Access è progettato per *non* lavorare in rete, a meno che non sia affiancato da MSDE, che comunque è uno strumento che funziona come "simulatore in miniatura" di SQL Server, molto più lento e con connessioni limitate ed è, per licenza, dedicato agli sviluppatori.

    Ti ringrazio per la tua risposta e penso che sia più adatta rispetto alla precedente, ma non ho ben capito questo:

    "..poi utilizzare una tabella a parte in cui memorizzare l'ultimo anno usato nei documenti e l'ultimo numero, da incrementare ogni volta."
    Se implementi "manualmente" il meccanismo di numerazione dell'anno e del numero del documento, da qualche parte devi salvarti l'ultimo anno e numero utilizzati per proporli all'utente quando si appresta ad inserire il nuovo documento, affinchè si trovi in automatico il primo numero valido. Questi dati devono essere memorizzati di volta in volta quando hai completato ogni documento, incrementando il numero.

    ...non riesco a stare al passo con le risposte!!
    Non è un problema...

    Comunque, penso che dovrai fare un po' di formazione autonoma sui database. La scelta finale dovrebbe anche tenere conto dell'ambiente di sviluppo che utilizzi, poichè in alcuni sono già presenti componenti e librerie in grado di connetterti a certe basi dati differenti da quelle disponibili invece in altri ambienti.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    63
    Ti ringrazio per le preziose informazioni!

    In questa prima fase sto progettando il database e sto usando Access come "prototipo" anche perchè riesco con molta velocità a verificare problemi generali di funzionamento e in più utilizzo le relazioni per avere una visione globale del progetto. Comunque per la scelta definitiva mi stavo orientando su un DB tipo MySQL soprattutto per motivi economici: non posso proporre un' applicazione obbligando l'acquisto di DB di costo elevato! Il mio progetto riguarda la gestione di un centro fitness per cui devo trovare soluzioni vantaggiose. Inoltre non lavoro in maniera diretta in questo campo (lavoro e studio ing. informatica) per cui non ho a disposizione strumenti costosi su cui fare pratica. La scelta di questo progetto è legata anche alla mia passione (www.bodyandmind.it). Ho già realizzato un' applicazione per la gestione delle schede di allenamento se vuoi farti un "giro" nell'area riservata del mio sito posso darti una password di accesso.


    Antonio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.