Applicare le operazioni matematiche sulla colonna della tabella

2

Questa domanda riguarda la ricerca di approcci per risolvere un problema specifico.

Ho una tabella con diverse metriche con valori.

[metric1] [metric2] [metric3] [metric...N]

Queste colonne sono fisse.

Ho bisogno che l'utente sia in grado di generare metriche calcolate utilizzando le colonne esistenti.

Diciamo che un utente ha creato una metrica personalizzata che assomiglia a:

[custom_metric] = ([metric1] + [metric3])*[metric2]

Pertanto, l'utente sarebbe in grado di selezionare un report utilizzando queste metriche personalizzate e altre metriche.

Ho due opzioni. Uno è quello di gestirlo nel database che è un PostgreSQL. Altro è quello di dividere la formula matematica in pezzi e memorizzarla che penso sia la strada da percorrere. Per PHP sto usando Laravel 5.1. Il problema è come memorizzare la formula in un modo che potrebbe essere facilmente applicato quando sto generando il rapporto.

    
posta Hernan 27.01.2017 - 21:38
fonte

1 risposta

1

Questa è probabilmente una delle ragioni principali dietro l'invenzione delle stored procedure SQL. Una stored procedure è una funzione scritta dall'utente, che viene archiviata come oggetto nel database (se il software lo supporta). Puoi quindi chiamarlo come se fosse una delle funzioni incorporate.

Postgres, che hai menzionato, li ha. SQlite3, ad esempio, non lo fa.

Il problema con le stored procedure è che sono molto meno portabili delle definizioni dei dati (ad es. tabelle, viste, cursori, ecc.) - il più delle volte la sintassi utilizzata è specifica del database. Credo che Postgres più utilizzato sia PL / pgSQL, che viene fornito con l'installazione del database, ma che deve essere abilitato in ogni nuova istanza di database creata e che richiede le stored procedure con.

Penso che questo sito abbia buone esercitazioni e spiegazioni su come creare stored procedure per Postgres, come utilizzare i parametri in / out e trasformare la tua logica in un risultato che il tuo software può utilizzare: PostgresqlTutorial.com - Sezione stored procedure

    
risposta data 28.01.2017 - 03:04
fonte

Leggi altre domande sui tag