Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123

    Pianificazione db per gestionale

    Ciao a tutti, volevo chiedere un consiglio/parere per quanto riguarda la progettazione di un database per un gestionale (ipotizziamo tabella clienti e fatture).
    Fino ad oggi, in tutti quei applicativi che richiedevano una tabella anagrafica, ho sempre collegato tutte le altre tabelle (dove richiesto), con l'ID relativo alla persona inserita in anagrafica, ma questo modo di operare non mi convince troppo, in quanto:
    - se la persona cambia indirizzo, questo in automatico si riflette in tutte le righe con il suo ID, di conseguenza se vado a ristampare una vecchia fattura, mi esce con il nuovo indirizzo e questo non va bene.
    Per questo motivo ho pensato che sarebbe meglio trasportare tutti i dati anagrafici (prelevandoli dalla tabella anagrafica) in ogni tabella che richiede l'anagrafica, ma a questo punto nasce un'altro dubbio: se dopo qualche mese mi accorgo che ho sbagliato a inserire i dati anagrafici di una persona, non mi basta correggere la tabella anagrafica, ma devo fare un update anche a tutte le tabelle interessate, non è che sia il massimo...
    Da queste riflessioni ho pensato che l'ottimale sarebbe creare una tabella ANAGRAFICA contenente solo i dati che non cambiano mai (cognome, nome, data nascita, codice fiscale), e una tabella INDIRIZZI contentente i dati che nel tempo possono cambiare (città, indirizzo ecc..) e aggiungere un campo data FINE_VALIDITA. In pratica nella tabella INDIRIZZI, aggiungere una riga ogni volta che cambia qualche dato. In questo modo, quando richiamo una fattura vecchia, in base alla data di fattura, si prende l'indirizzo giusto.
    Cosa ne pensate, potrebbe andare bene? Avete qualche consiglio o accorgimento diverso da suggerirmi?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    up...

  3. #3

    Re: Pianificazione db per gestionale

    Originariamente inviato da alpynet
    Ciao a tutti, volevo chiedere un consiglio/parere per quanto riguarda la progettazione di un database per un gestionale (ipotizziamo tabella clienti e fatture).
    Fino ad oggi, in tutti quei applicativi che richiedevano una tabella anagrafica, ho sempre collegato tutte le altre tabelle (dove richiesto), con l'ID relativo alla persona inserita in anagrafica, ma questo modo di operare non mi convince troppo, in quanto:
    - se la persona cambia indirizzo, questo in automatico si riflette in tutte le righe con il suo ID, di conseguenza se vado a ristampare una vecchia fattura, mi esce con il nuovo indirizzo e questo non va bene.
    Per questo motivo ho pensato che sarebbe meglio trasportare tutti i dati anagrafici (prelevandoli dalla tabella anagrafica) in ogni tabella che richiede l'anagrafica, ma a questo punto nasce un'altro dubbio: se dopo qualche mese mi accorgo che ho sbagliato a inserire i dati anagrafici di una persona, non mi basta correggere la tabella anagrafica, ma devo fare un update anche a tutte le tabelle interessate, non è che sia il massimo...
    Da queste riflessioni ho pensato che l'ottimale sarebbe creare una tabella ANAGRAFICA contenente solo i dati che non cambiano mai (cognome, nome, data nascita, codice fiscale), e una tabella INDIRIZZI contentente i dati che nel tempo possono cambiare (città, indirizzo ecc..) e aggiungere un campo data FINE_VALIDITA. In pratica nella tabella INDIRIZZI, aggiungere una riga ogni volta che cambia qualche dato. In questo modo, quando richiamo una fattura vecchia, in base alla data di fattura, si prende l'indirizzo giusto.
    Cosa ne pensate, potrebbe andare bene? Avete qualche consiglio o accorgimento diverso da suggerirmi?
    Grazie
    E se ad un aggiornamento dei dati, crei un nuovo id cliente con il vecchio come padre?
    Ciao!

  4. #4

    Re: Re: Pianificazione db per gestionale

    Originariamente inviato da fmortara
    E se ad un aggiornamento dei dati, crei un nuovo id cliente con il vecchio come padre?
    bravo! così ho 2 clienti, non uno... (pensa a questa query: fatturato per cliente)

  5. #5
    Asp...

    esempio: cliente 1, fatture a cliente 1

    cliente 1 cambia indirizzo, diventa cliente 2, padre 1

    per il calcolo uso cliente 1 o tutti quelli che hanno 1 come padre. per le nuove fatture uso cliente 2.

    Oppure, non uso l'id ma un campo univoco (p.iva/cf) per i calcoli, mentre l'id solo per associare la fattura.
    Ciao!

  6. #6

    Re: Re: Re: Pianificazione db per gestionale

    Originariamente inviato da optime
    bravo! così ho 2 clienti, non uno... (pensa a questa query: fatturato per cliente)
    Codice PHP:

    SELECT 
    from clienti where cf 'codice_fiscale';
    # codice php

    SELECT fatturato FROM fatture WHERE cliente in ('id_ottenuti'); 
    Ciao!

  7. #7
    ma ti trovi sempre con 2 clienti: quando vai a fare una nuova fattura, dovrai impedire di usare il padre... tanto vale allora avere una tabella separata per i dati variabili

  8. #8
    Bè, il padre lo disattivi.
    Insomma, niente di non gestibile.
    Ciao!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.