Database servizi generalizzati

From ortiche
Jump to navigation Jump to search

Appunti sulla struttura unificata dei servizi in via di definizione. Versione inizialmente definita da a/h e poi estesa da a/g/j. Secondo a/g/j è il caso di tenere la struttura in un db unico e realizzare le relazioni tramite JOIN SQL anziché sintetizzare con PHP delle join tra tabelle di db diversi.

Si usi la pagina discussione per discuterne.

Tabella users

Descrizione degli utenti registrati per l'autenticazione.

  • username
  • password - MD5 della password

Tabella data

Dati veri e propri del servizio. Ha le colonne che servono per il particolare servizio. Una colonna (o combinazioni di esse) deve fare da indice, e.g. rr per il DNS.

Tabella perms

Permessi, associazione tra utenti e record di data.

  • username
  • filter - valore che fa da filtro sulla colonna di data designata come indice. il filtro verra applicato con un ILIKE mysql quindi gli operatori contemplati sono solo % e _.

Tabella hrdesc

Descrizione umanamente leggibile delle colonne di data. Il nome viene da human readable description (no pun intended). Si è pensato di spostarlo in una tabella apposta perché la soluzione con i commenti di SQL non offre possibilità immediate e semplici di gestire la localizzazione delle interfacce di gestione.

  • language - solita stringa che descrive la lingua, it-IT, en-US ecc
  • key - cosa si sta descrivendo (potrebbe essere il nome della colonna o un altro indice)
  • hrtext - stringa di descrizione human readable

In questo modo l'interfaccia web (o eventuali altre) può direttamente tirarsi giù i nomi umanamente leggibili delle colonne per costruire i form di inserimento e modifica, in modo più elegante di quanto si è fatto finora in cui la localizzazione avveniva con tonnellate di array PHP.

Anche il nome del servizio potrebbe essere messo in questa tabella, indicandolo ad esempio con uno speciale valore di key.

Tabella valid

Descrizione di come i valori inseriti devono essere validati prima di essere messi nella tabella data. Si è pensato di spostare anche questo in una tabella apposta perché si tratta comunque di metadati che stanno bene insieme ai dati stessi, e questo alleggerisce i file di configurazione dell'interfaccia web (o eventuali altre).

  • column - colonna a cui il record si riferisce
  • validation - regexp di validazione

Definizione di istanza di accesso al db

Il set minimo di parametri per accedere a un database servizio e':

  • DBHost
  • DBUser
  • DBPassword
  • DBDatabase
  • AuthUserTab
  • AuthUserCol
  • AuthPasswordTab
  • AuthPasswordCol
  • PermUserTab
  • PermUserCol
  • PermFilterTab
  • PermFilterCol
  • DataIndexTab
  • DataIndexCol