Italian Progettazione Database con utenti appartenenti ad associazioni diverse

Elric

Well-Known Member
Licensed User
Ciao,

sto lavorando ad un piccolo manageriale per delle associazioni, in B4J, ho qualche dubbio e vorrei confrontarmi con voi.

L'idea è di creare una maschera iniziale di login e, poi permettere di interfacciarsi ad uno (o più?) database.

Per gestire casi di omonimia di user (non voglio limitarlo), ho pensato che il login venga effettuato mediante:
  • nome associazione
  • nome utente
  • password
in questo modo, ritengo, posso (i) avere omonimie di utenti (un utente "mrossi" nell'associazione "alfa" e un utente "mrossi" nell'associazione "beta") e (ii) migliorare un pelo anche la sicurezza, poiché - davanti alla schermata di login - bisogna possedere 3 credenziali e non solo 2.

Ma come progetto il db?
  1. Metto tutti gli utenti in una tabella e verifico il login su 3 campi (associazione, nome utente e hash)?
  2. Creo una tabella per ogni associazione?
  3. O addirittura un database per ogni associazione?

Utilizzando (al momento) jRDC2, posto che username, password e porta per accedere al DBMS sono sempre gli stessi (al massimo cambio porta per il server) ho l'impressione che la 1 vale tanto quanto la 2 e la 3. Ma magari mi sbaglio.

Domanda bonus: il salt lo memorizzo in un'altra tabella? Ha senso?

Che dite?
 

Elric

Well-Known Member
Licensed User
Bella domanda! Non ci avevo pensato!

La risposta è: "Si". Benché ciò sia molto improbabile, in quanto gli utenti sono utenti "manager".
 

amorosik

Expert
Licensed User
Bella domanda! Non ci avevo pensato!

La risposta è: "Si". Benché ciò sia molto improbabile, in quanto gli utenti sono utenti "manager".

Io farei tanti db quante sono le associazioni + 1 db tabelle comuni
Le tabelle comuni raccolgono dati che tutti i db associazioni possono usare, ad esempio le 'anagrafiche', le 'causali operative' o roba del genere
Quindi il programma sara' sempre collegato su 2 db, quello comune e quello specifico associazione scelta
E ciao
 

Xfood

Expert
Licensed User
Io farei un unico db, altrimenti ogni volta che aggiungi un'associazione , devi creare un nuovo db,
E magare mettere mani al codice.
 

Star-Dust

Expert
Licensed User
Longtime User
Io scriverei tutto sul taccuino e faccio prima
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
a limite due agendine (vecchie del 2020 che tanto non l'abbiamo usata) Uno per i nomi e l'altra per le associazioni
 

LucaMs

Expert
Licensed User
Longtime User
a limite due agendine (vecchie del 2020 che tanto non l'abbiamo usata) Uno per i nomi e l'altra per le associazioni
Se necessario, tagliuzzare strisce di pagine di una e incollarle sull'altra.



Io scriverei tutto sul block notes e faccio prima
[Non esiste italiano che pronunci "Block notes" come si deve. Vi ricordo che io non sono italiano né, tantomeno, terrestre ?]
 

Star-Dust

Expert
Licensed User
Longtime User
io ho scritto chiaramente taccuino, la marca è Pigna serie sqlBD

1623135207585.png
 

giannimaione

Well-Known Member
Licensed User
Longtime User
non concordo! ?
Concordo.

Di base due tabelle: Associazione (con ID e Nome) e Utente(ID, Nome, PW, AssociazioneID)
tabella utenti:
ID
user
password

tabella associazione:
ID
IDutenti (uno a molti)
.....
.....
 

giannimaione

Well-Known Member
Licensed User
Longtime User
è un modello vecchio!!!
ora c'è la serie 2021 o_Oo_Oo_Oo_O
 

giannimaione

Well-Known Member
Licensed User
Longtime User
povero @Elric !!! non sta a capire nulla!
dovevamo dare un consiglio e invece.... "i soliti idioti"
 

LucaMs

Expert
Licensed User
Longtime User
non concordo! ?

tabella utenti:
ID
user
password

tabella associazione:
ID
IDutenti (uno a molti)
.....
.....
Invece concordi, solo che hai, giustamente, aggiunto la terza tabella, di relazione tra la tabella "Associazione" e quella "Utente".

La "mia" tabella Associazione deve esistere, per le proprietà dell'associazione (ad iniziare dal suo nome).
 
Top