[Python] Struttura dati.

Carlos Catucci carlos.catucci a gmail.com
Gio 22 Ott 2020 16:16:18 CEST


On Thu, 22 Oct 2020 at 15:59, Gabriele Battaglia <iz4apu a libero.it> wrote:

> Ciao.
> Devo creare un DB di clienti e sto pensando alla miglior struttura dati
> che posso utilizzare.
> Avrò un nome cognome e poi, associati a questo nome cognome, una lunga
> serie di dati che devo poter estrarre.
>
> Pensavo ad un dizionario la cui chiave sia, appunto nome cognome in una
> unica stringa, oppure un ID, e come valore una lista che contenga tutti
> i campi che caratterizzano quel cliente, parliamo di una cinquantina di
> valori.
>

Ma perche' non usare un Db per la persistenza dei dati e poi fare un
mapping dei campi della tabella con una lista di dizionari?
A meno che i valori non siano anche solo in parte specifici di un dato
cliente (esempio uno ha la Partita Iva e un'altro il codice fiscale e un
terzo il social security number anglosassone.
In quel caso la struttura che citi

valore: tipo dato = clienti[id][dato]
>

dovresti metterla u una tabella strutturata come segue

id  | id_cliente  | nome_campo  | valore

e poi mappare nel dizionario una dizionario che contiene i campi. Una cosa
del tipo

lista_clienti = [
  {'id': 3, 'nome': 'Mario', 'cognome': 'Rossi'},
  {'id': $, 'nome': 'Luigi', 'cognome': 'Farquati'},
]

lista_campi_clienti = [
  {'id': 1,'id_cliente': 3, 'campi': {'campo': 'codice fiscale':
'DFGERM23R45T145S', 'indirizzo': 'via di casa sua, 2'}},
  {'id': 2,'id_cliente': 4, 'campi': {'campo': 'codice fiscale':
'TTRDSA21F27L534P', 'email 'ciccio a ciccio.it'}},
]
Ancora meglio se oltre mettere i dati dentro un Db li consulti con un ORM,
come SqlALchemy, che provvede a scolgere i compiti per te (selezione dati,
inserimento, aggiornamento, cancellazione).
Ti trovi che ti torna delle strutture (liste e dizionari) gia' pronte

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20201022/69d37bc6/attachment.html>


Maggiori informazioni sulla lista Python