mi presti il tuo ventaglio?ribadisco:
un ricco sfondato si gode la vita! te lo dico per esperienza personale
ecco un mio selfie sul lungomare di Napoli
View attachment 114636
Basta, non scrivo più
mi presti il tuo ventaglio?ribadisco:
un ricco sfondato si gode la vita! te lo dico per esperienza personale
ecco un mio selfie sul lungomare di Napoli
View attachment 114636
Ah, sei povero, allora.ribadisco:
un ricco sfondato si gode la vita! te lo dico per esperienza personale
ecco un mio selfie sul lungomare di Napoli
View attachment 114636
ahi, ahi, mi caschi sul pisello!Non solo il medesimo utente (es. mrossi) potrebbe essere iscritto a più di un'associazione, ma è anche possibile che nella stessa associazione ci siano due (o più) mrossi, quindi il problema unicità dello username va affrontata comunque.
Infatti i nomi doppioni sono possibili se usi un UserID. Per accedere usi UderID (ognuno il suo) e Password, non usi Nome e Passwordahi, ahi, mi caschi sul pisello!
chi registra i nuovi utenti?
quante volte è capito di registrare un ns. account (specialmente sui siti zozzoni), e ci viene segnalato "utente già presente ... scegli un altro nome"
ID (Indice) | int(20) AUTO_INCREMENT |
nome_utente (Primaria) | varchar(50) |
associazione_ID | text |
text | |
attivo | tinyint(1) |
hash | blob |
salt | blob |
ID (Indice) | int(20) AUTO_INCREMENT |
nome_associazione (Primaria) | varchar(50) |
via | text |
numero_civico | text |
città | text |
stato | text |
us_state | text |
piva | text |
text | |
attiva | tinyint(1) |
Giusto per capire: questa relazione la creo con una query... ma direttamente su RDBM o tramite codice? Cioè, creo una tabella con questa struttura, ma il popolamento lo fa il RDBM o il mio codice?
Il mazzetto di contanti è superato. Oggigiorno usano i mazzetti di carte di credito.ribadisco:
un ricco sfondato si gode la vita! te lo dico per esperienza personale
ecco un mio selfie sul lungomare di Napoli
View attachment 114636
Non so cosa tu debba fare con hash e salt. Se vuoi crittografare ogni singolo dato, fallo nel sw, in lettura e scrittura (se SQLite c'e anche la versione cifrata, che non ho mai usato, ma ho letto di sfuggita alcuni problemi, di versione, mi pare).il salt lo immagazzino qui?
Infatti nome_utente puoi definirlo come campo chiave, per velocizzare le query; l'ID dovrebbe essere la chiave primaria (ID che non è detto sia un valore autoincrementato per forza, potresti assegnarne uno tu, magari alfanumerico).Avrò probabilmente fatto casino anche con la chiave primaria e l'indice... se ho due "mrossi" nella stessa tabella mi sa che non posso definire la colonna nome_utente come primaria, giusto?
Se un utente è gestore di due o più associazioni,
apro due account diversi,
La stringa JSON - si potrebbe fare anche molto semplicemente una normale stringa in cui i dati siano separati da un "pipe" "|" e all'occorrenza "splittarli" (@udg, non guardare, devo adeguarmi, purtroppo ?) ma poi voglio vederti eseguire delle query su questo campo; come dicevi:Questo per non dire che popolare la colonna Associazioni della tabella utenti con Campo Stringa Json - cosi supporta piu voci - come suggerito da Star-Dust non saprei davvero come fare!
Esatto; la chiamano "atomicità" dei datiPer non parlare del fatto che mi pare che da qualche parte avevo letto che è meglio che un campo abbia un solo valore (es. "mario" e "rossi" e non "mario rossi")
Ciao Gianni, quello è esattamente ciò che intendevo. Se vuoi lasciare piena libertà all'utente di scegliersi un suo username allora devi fare come tutti i siti che prevedono una registrazione e verificare/impedire che non si creino doppioni. Se invece, come in seguito specificato da @Elric , gli utenti manager li inserisce lui manualmente da una sua interfaccia scritta in B4J, il problema decade perché sarà lui ad evitare doppioni.ahi, ahi, ...
metti che sia un'associazione sportiva e l'utente abbia un caso di micosi in corso..e dell'alluce
quindi io non potrei eseguire l'accesso, visto che non ho "gli" alluci, ma le allucinazioniInfine io farei la scansione della retina e dell'alluce così da rendere unico l'accesso.
Tra i "malanni" maggiori dei calciatori c'è l'unghia dell'alluce incarnita.metti che sia un'associazione sportiva e l'utente abbia un caso di micosi in corso..
Ci creo la password (ho seguito il metodo usato anche in questo esempio nella parte "Login"). Qui leggo "è abitudine tenere segreto il valore salt e conservarlo separatamente dal database delle password"; che vuol dire che lo devo conservare in un'altra tabella separata da quella in cui conservo i dati degli utenti manager?Non so cosa tu debba fare con hash e salt.
Con calma organizziamo uno spettacolo in cui mi esibisco in questa attività e lo pubblicizzeremo come "Elric's json queries is the new Zelig"... e facciamo i soldi!La stringa JSON - si potrebbe fare anche molto semplicemente una normale stringa in cui i dati siano separati da un "pipe" "|" e all'occorrenza "splittarli" (@udg, non guardare, devo adeguarmi, purtroppo ?) ma poi voglio vederti eseguire delle query su questo campo;
Tutto chiaro e decisamente più snello, ma in un'ottica GDPR compliant (o adempimento alla normativa prevista dal RGPD), partendo dal presupposto che il manager è un associato e che il titolare dei dati è l'associazione, è meglio se gli account dei manager sono separati in maniera stagna: virtualmente ti metti il cappello dell'associazione che devi seguire in quel momento e con un accesso vedi solo ed esclusivamente i dati di quell'associazione. È un discorso un po' lungo e merita approfondimenti a parte (un assessment della situazione, verifica della titolarità del dato etc.) e andrei OT in maniera molto noiosa.Nella RelManAssoc avrai, ad esempio:
un record con 1,1, indicante che Pippo (ID 1) gestisce l'associazione Filibustieri (ID 1)
un record con 2,2, indicante che Franco (ID 2) gestisce l'associazione Ladri (ID 2)
un record con 2,3, indicante che Franco (ID 2) gestisce l'associazione Delinquenti (ID 3)
?Nota che nell'esempio non ho messo "Nome_Manager" e "Nome_Associazione", come nomi dei campi; motivo? Beh, se la tabella è "Manager" e ci metto un campo "Nome", non è scontato che sia il nome del manager? Stessa cosa per l'Associazione. Altrimenti dovresti fare lo stesso per tutti i campi:
Città_Manager - Città_Associazione
ID_Manager - ID_Associazione
che senso ha, che necessità c'è? Nelle query avrai Manager.Nome e Associazione.Nome (e, come vedi, il nome tabella al singolare ci sta molto meglio).
?Bene, sono le 4 passate; quante cavolate avrò scritto? ?
No, è l'associazione, che indicherà chi dei suoi associati avrà accesso ai dati. La fattura è intestata all'associazione.@Elric : presumo che chi paghi il servizio sia l'utente manager (es. un certo importo per ogni associazione attiva); non dovresti avere il CF anche per questo tipo di figura visto che dovrai emettere fattura?
Ipotizziamo cheSe capisco bene hai una relazione uno-a-molti tra utente_manager (il tuo cliente) e le associazioni. Stessa situazione tra Associazione e Soci.
La soluzione indicata da @LucaMs che fa uso della tabella relazionale ti risolve entrambe le situazioni ed è molto flessibile.
Quindi, di base hai 3 tabelle dedicate (Manager, Associazioni, Soci) e 2 tabelle di relazione (Manager-Associazione e Associazione-Soci).
Una persona che sia associata a 4 Associazioni avrà 4 record nella seconda tabella di relazioni (se anche lì metti un campo di status, tipo attivo/disattivo/sospeso.. con un solo valore gestisci la situazione del socio per ciascuna associazione cui è iscritto, indipendentemente dalle eventuali altre).
Esattamente come per Manager e Associazioni.
4 anni di tesoriere e altri 4 di affiancamento in un'associazione, più 3 di segretario e 2 di affiancamento in un'altra, direi che un'idea me la sono fatta! Ma fai bene a ricordarmelo perché di alcune casistiche non ho avuto esperienza!ps: quando disegnerai le tabelle per la gestione operativa delle associazioni, ricorda di dare massima flessibilità all'impostazione perché in quel campo ognuno gestisce le cose a modo suo. Es. Quota annuale. Alcuni prevedono una quota fissa uguale per tutti, altri quote differenziate in base al tipo di socio. Alcuni fanno pagare solo le mensilità restanti alla fine dell'anno solare, altri vogliono la quota intera ed altri ancora fanno pagare i mesi restanti più l'intero anno successivo (soprattutto se la scadenza annuale è imminente). Poi ci sono tutte le clausole di sospensione dei servizi, non solo per mancati pagamenti (es. motivi disciplinari).
Il consiglio è quello di "intervistare" qualche associazione (se non hai già esperienza diretta) per carpire la varietà di situazioni e poter disegnare dall'inizio qualcosa che si adatti bene alla grande maggioranza di casi.
Sto cercando "Alluci" nel phpmyadmin ma trovo solo "Indici"...Comunque, in informatica si usano meno gli alluci e più... gli indici ?
Crea una pw di una dozzina di caratteri, numeri, letterali (sia maiuscole che minuscole) e segni speciali. La probabilità che qualcuno la indovini (usando sw) sarà (a occhio) di una su 1.000 miliardi (si potrebbe calcolare; [numero di caratteri disponibili - già soltanto gli alfabetici sono 52] ^ [lunghezza pw]).Ci creo la password (ho seguito il metodo usato anche in questo esempio nella parte "Login"). Qui leggo "è abitudine tenere segreto il valore salt e conservarlo separatamente dal database delle password"; che vuol dire che lo devo conservare in un'altra tabella separata da quella in cui conservo i dati degli utenti manager?
Credo siano solo in MS SQLServer ?Sto cercando "Alluci" nel phpmyadmin ma trovo solo "Indici"...
70^12=13.841.287.200.999.999.537.152Crea una pw di una dozzina di caratteri, numeri, letterali (sia maiuscole che minuscole) e segni speciali. La probabilità che qualcuno la indovini (usando sw) sarà (a occhio) di una su 1.000 miliardi (si potrebbe calcolare; [numero di caratteri disponibili - già soltanto gli alfabetici sono 52] ^ [lunghezza pw]).