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