aliasColumn¶
L’aliasColumn permette di inserire all’interno di una table una colonna di un’altra table in relazione. I valori non saranno «copiati», ma verrà utilizzata a tutti gli effetti la table originaria, garantendo l’integrità dei dati, ma allo stesso tempo la colonna sarà equiparabile nell’utilizzo a una colonna «vera» della table di destinazione.
Suggerimento
L’aliasColumn è particolarmente utile in caso di colonne di tabelle in relazione che vengono utilizzate spesso nelle Operazioni di lettura
Per aggiungere un’aliasColumn all’interno di una table:
class Table(object):
def config_db(self, pkg):
tbl.column('cliente_id',size='22' ,group='_',name_long='!![it]Cliente'
).relation('cliente.id',
relation_name='fatture',
mode='foreignkey',onDelete='raise')
tbl.aliasColumn('clientenome','@cliente_id.ragione_sociale',name_long='Cliente')
tbl.aliasColumn('clienteregione', '@cliente_id.@provincia.regione', name_long='Regione Cliente')
Si definisce quindi innanzitutto una relazione , dopodiché all’interno dell’aliasColumn si inserisce:
clientenome
, ovvero il nome della colonna@cliente_id.ragione_sociale
, ovvero la colonna di questa table in relazione (cliente_id
) e la colonna della tabella originaria da utilizzare come alias.
A questo punto grazie all’utilizzo dell’aliasColumn la query non sarà più:
rel_query = self.db.table('fatt.fattura').query(columns='@cliente_id.ragione_sociale',
where='@cliente_id.@provincia.regione = :reg', reg='LOM', limit=5)
bensì:
rel_query = tbl_cliente.query(columns='$clientenome', where='$clienteregione = :reg', reg='LOM', limit=5)
Parametri:
Nome parametro |
Tipo |
Descrizione |
---|---|---|
relation_path |
T |
Generalmente implicito, permette di indicare il path della colonna di cui si vuole riflettere i valori (es: “@fattura_id.cliente_id”) |
static |
B |
Autore della sezione: Davide Paci