Nella mia applicazione, ho un sacco di query SQL con logica aziendale incorporata in esse. Ad esempio, nelle ricerche "nascondo" i risultati che sono di basso livello, meno di -5 "valutazione della community" perché tali risultati contengono spam, imprecisioni, ecc. E sono stati segnalati dalla comunità.
Nella mia query SQL, potrebbe essere:
SELECT
...
...
WHERE community_rating > -5
Qui inserisco la logica di business direttamente nella query. E se cambiassimo le nostre opinioni in seguito sulla soglia per nascondere i risultati? Al momento ho 4 query che usano questo numero magico, e altre potrebbero venire.
Il mio istinto dice di estrarre questi numeri in un "file di configurazione del database", perché i numeri vengono riutilizzati molto e possono essere modificati, ma sono tentato di dire di no perché aggiunge molta confusione mentre aggiungete altro $
-type variabili come:
SELECT
...
...
WHERE community_rating > $5
E avrei una serie di valori da passare alla query come:
[..., ..., ..., ..., DB_CONFIG.HIDE_RESULTS_AT_RATING]
Immagino che diventerà ancora più difficile e difficile da capire nel tempo, ma probabilmente è l'inesperienza a parlare.
Si dovrebbe estrarre la logica di business a livello di database in un file di configurazione ?
Modifica : questo è il back-end di un servizio web. Questo non è un parametro che un utente che sta facendo una ricerca può cambiare. In tutte le query, i risultati vengono esclusi a questa soglia e la soglia viene decisa da me. Esistono più funzioni di ricerca, che utilizzano tutte questa soglia.