Back to Django IT

Un gruppo di ricerca usava Microsoft Access per creare dei Database, e stava pensando alle proprie opzioni.

Queste sono alcune note di quello che gli ho detto, in quanto può essere rilevante ache per altri.

Sono tornato a Django, che avevo già usato per mupris.net, e sono giunto alla conclusione che probabilmente è la soluzione migliore per loro.

Note generali

Database relazionale: la cosa più importante è definire lo schema. Quello si può fare discutendo ad alto livello su cosa si vuole registrare, e poi definendo le tabelle e i campi.

Perchè Django

Django non è il tool migliore per esperti, e in effetti non è quello che ho usato in NOMAD, ma ci sono atri aspetti che sono importanti, in particolare la possibilità di includere facilmente altre persone, in particolare esperti della materia, ma non di informatica. Django normalmente incanala verso delle pratiche che non sono necessariamente le migliori, ma che hanno dimostrato la loro utilità molte volte. Questo lo rende una buona soluzione in tanti casi.

  • definizione del Db facile da capire per i non addetti ai lavori (molto importante)
  • supporto per migrazioni
  • supporto per più databasi:
    • Postgres è una buona scelta (open source, gratuito, e buone performance & capacità)
    • mysql o mariadb (il fork più aperto) è ok in particolare se chi lo deve amministrare lo conosce di già
    • sqlite: il db è in un singlo file, molto comodo per uno sviluppatore locale
  • possibiltà per nuovi developer di avere facilmente un installazione locale in cui sperimentare, e poi integrare le cose nella versione principale (via migrazioni)
  • codice e definizione del databse in git (molto utile, info su git)
  • spinge verso un buon design del DB (la soluzione più ovvia in Django normalmente è una soluzione ben pensata e usata da molti). Esistono optioni più flessibili (SqlAlchemy per esempio) che possono essere più potenti per gli esperti, ma per i non esperti è più facile scegliere opzioni che creano problemi più tardi
  • interfaccia di admin: Uno vuole poter inserire i dati, e questo é fatto da utenti “speciali”. Con django si può immediatamente aver un interfaccia per inserire i dati molto funzionale, e che può poi essere miglorata.

l’interfaccia di admin secondo me è un punto fondamentale, e la ragione principale per scegliere django. Migrazioni e interfaccia admin permettono di non rimanere ostaggi del database, e ruscire a cambiarlo in modo ragionevole.

  • Django REST Framework è una buona opzione per API
  • GeoDjango aiuta a supportate dati spaziali georiferiti (rilevante er il loro progetto)

    Alternative

    Se a pagamento Filemaker ha un interfaccia abbastanza semplice da gestire per i non programmatori. Il suo svantaggio principale è che necessitando una licenza è più difficile includere gente esterna.

Se no Sqlalchemy è un ottimo tool in python per gesture lo schema, migrazioni (nuove versioni del DB) e queries al database (più potente di Django, ma senza il supporto per creare le interfacce, si può combinare con altri tools). Ci sono naturalmente altre possibilità per esempio (Active Records se si usa ruby on rails, o Jooq in java), e a seconda di quello che si usa possono essere migliori, ma io comincerei da queste.

Genrazione dello schema

SchemaCrawler

./bin/schemacrawler.sh --server sqlite --database ../rsite/db.sqlite3  --info-level=maximum --password= --command=schema --output-format=png --output-file=../rsite/schema.png

preso da Short

potrebbe essere utile guardare anche Sqleton

vedere DB di Access su mac

Mdb Viewer

Categories:

Updated:

Leave a comment

Comments are moderated. Your email address is neither published nor stored, only an md5 hash of it. Required fields are marked with *

Loading...