DB per utenti

Ciao a tutti!  :)

Volevo creare un applicazione web per creare ordini fatture ecc...

Sto creando la tabella degli utenti (clienti) ma mi trovo davanti sempre un problema di organizazione del DB.

Gli utenti possono venire registrati in 2 maniere.

1 Loggati da una pagina amministrativa.

2 Loggati da una pagina limitata.

la pagina limitata non ha altro che un controllo in più sula mail e i dati personali.

Quando un utente si registra si inserisce nella tabella utenti(clienti) un record con:

ragione sociale

nome cognome

via

citta

ecc...

dopo aver fatto la registrazione l'id della tabella diventa l'id utente e la password è quella che hanno scelto loro al momento della registrazione.

Il problema è questo:

Quando un utente modifica la via o l'indirizzo tutti gli ordini le fatture ecc cambiano... e ciò non è giusto.

Se creo un nuovo record l'id cambia... e ciò non è giusto.

Secondo voi come devo fare?

Io avevo pensato ad una cosa del genere:

tabella login

ID_login

nome utente

password

ID_cliente

tabella clienti

ID_cliente

anagrafica

nome

cognome

via

indirizzo

ecc...

Quando l'utente và a modificare i sui dati il campo anagrafica si incrementa e quindi quando devo scegliere il cliente con la queri posso vedere tutte le anagrafiche precedenti....

Voi cosa ne pensate?

Grazie

Marco :bye:

inviato 10 anni fa
Marco Dario
X 0 X

io penso che ti serve una data per scegliere l'anagrafica corretta delle fatture/ordini ecc.

risposto 10 anni fa
LonelyWolf
X 0 X

Non credo sia una gestione corretta.. cmq vediamo se ho capito...

Tu diresti di gestire le anagrafiche in base alla data di creazione giusto?

quindi quando apro un'ordine devo fare una query abbastanza complessa. Cioè confrontato la data dell'ordine e la data dell'anagrafica. Qunado queste due "combaciano" mi estrae l'anagrafica esatta.

risposto 10 anni fa
Marco Dario
X 0 X

Non è che le date devono combaciare, almeno non necessariamente!

Facciamo un esempio:

24/07/06 si registra, fa le fatture ordini ecc.

25/07/06 altro ordine

26/08/06 modifica anagrafica.

Le fatture/ordini precedenti all 26/08/06 (ultima modifica) devono avere i dati dell'anagrafica del 24/07/06; e così via, se fa un'altra modifica all'anagrafica idem.

Inoltre ID_cliente deve essere univoco solo nella tabella di login mentre in quella delle anagrafiche, mantenendo lo storico, deve potersi ripetere.

risposto 10 anni fa
LonelyWolf
X 0 X

Dopo un pò ci ho pensato  e credo che con le date ci sia un bel pò da inpazzire... non ci sono altre soluzioni???

Grazie

risposto 10 anni fa
Marco Dario
X 0 X

No, l'unico dato che ti dice quale è l'anagrafica corretta è la data di crezione/modifica della stessa.

L'unica alternativa sarebbe salvare anche l'anagrafica del cliente con i dati della fattura così non ti devi preoccupare se è cambiata, ma sarebbe uno spreco.

Ripensandola al volo:

1 - tabella con id cliente ragione sociale, ecc. tranne indirizzo, insomma i dati che non variano;

2 - tabella degli indirizzi dei clienti, da relazionare con la precedente e con la data di modifica;

Quando apri una fattura recuperi i dati del cliente e per l'indirizzo:

data_indirizzo<=data_fattura con ordine decrescente limit 1 (in sostanza la modifica più recente alla data della fattura ma non successiva)

risposto 10 anni fa
LonelyWolf
X 0 X

Eccomi qui!

Ho fatto come dicevi tu LonelyWolf ! Devo dire che avevi ragione la soluzione migliore era la tua con le date si lavora meglio! ;)

Grazie ancora!  O0

Marco  :bye:

risposto 10 anni fa
Marco Dario
X 0 X

Di niente, l'importante è che tutto sia a posto! ;)

risposto 10 anni fa
LonelyWolf
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda