[Python] python SQL?

Manlio Perillo manlio.perillo a gmail.com
Dom 16 Feb 2014 15:03:50 CET


On 16/02/2014 14:50, Perini Matteo wrote:
> Il 16/02/2014 14:04, Manlio Perillo ha scritto:
>> Perchè, in questo caso specifico, un ORM è una bestia molto complessa,
>> e consigliarlo ad uno che adesso sta cominciando con i database
>> relazionali non è una buona cosa.
> Ciao,
> sto seguendo con interesse ma il livello si è alzato un po' ;)
>

Puoi tranquillamente ignorare i punti più complessi ;)

> Cerco di spiegarvi cosa vorrei fare.
> Per adesso si tratta di una piccola  applicazione  per tener traccia di
> accessi e pagamenti per una associazione.
>
> Scenario:
> Qualche centinaio di utenti avranno una carta RFID (codice univoco) con
> la quale potranno accedere alla sala dell'associazione.
> Ad ogni codice nel db corrisponderà l'anagrafica, numeri di telefono
> ecc, una decina di cose specifiche dell'associazione.
> Oltre a questo, ogni ingresso/uscita andrebbe immagazzinato da qualche
> parte.
> [...]
>
> Ho visto un po' di differenze tra db relazionali e documentali e penso
> che per il mio caso non faccia molta differenza quale uso. (il numero di
> campi sarà fisso)
> Anche i tempi delle varie query penso siano insignificanti in entrambi i
> casi visto che si parla di qualche migliaio di dati.

Un database server come PostgreSQL offre molta flessibilità.
Semplicemente lo installi su un server (magari separato da quello dove 
si trova il client, e gestito in modo da avere una buona sicurezza e 
backup); questo è uno dei vantaggi rispetto ad esempio ad SQLite.

Personalmente mi allontanerei dal modello relazionale *solo* se fa 
differenza quale modello uso.

> Non mi è invece molto chiaro come posso immagazzinare tutte le date/ora
> degli ingressi e uscite? suggerimenti?
>

Non mi sembra complesso.  Quale problema vedi?

> Come facilità d'uso cosa mi consigliate? mongodb? SQLite?
>

Devi innanzitutto distinguere tra modelli di dati.
mongodb e SQLite usano modelli di dati differenti.

Per una differenza tra i vari modelli, vedi le pagine di wikipedia per 
mongodb e PostgreSQL, in particolare:
http://en.wikipedia.org/wiki/Document-oriented_database
http://en.wikipedia.org/wiki/Relational_database

Sono argomenti abbastanza ampi, inizia a documentarti e magari se hai 
dubbi chiedi.  Tieni presente che sto assumendo tu voglia imparare ad 
usare un database.  In alternativa puoi anche iniziare leggendo la parte 
introduttiva della documentazione di PostgreSQL o mongodb.

Se ti va bene il modello relazionale, SQLite è sicuramente più semplice 
di PostgreSQL (e lo hai incluso in Python), ma ha diverse limitazioni.

> Dimenticavo... l'accesso al db avverrà sempre dallo stesso sw ma in due
> modi distinti, tramite la gui con richiesta dell'utente e, in automatico
> quando un utente "passa" la tessera con l'RFID, servirà prevedere thread
> per questo?
>

Cosa intendi?

 > [...]


Ciao  Manlio


Maggiori informazioni sulla lista Python