Le stringhe con hardcoded non sono un problema. Lasciali stare.
Ciò che dovrebbe avere è tuttavia funzioni che avvolgono le query in modo che ciascuno degli identificatori venga utilizzato solo una volta nel codice.
Se hai più di un posto dove hai bisogno delle stringhe, creare delle costanti per esse ha senso, perché il compilatore si assicurerà che siano coerenti. Ma se hai un posto nel codice e un posto nel database, il compilatore non controllerà nulla se fai costanti, quindi l'unica cosa che le costanti ti daranno sono più linee di codice, (probabilmente) fonte extra dove le costanti vivrà e più posti da cambiare ogni volta che le costanti devono cambiare (perché si desidera modificare il valore e il nome della costante ogni volta, in questo caso è necessario conoscere la stringa effettiva, in modo che il nome simbolico e il testo divergano renderebbe le cose peggiori). E ti vinceranno esattamente nulla, perché il controllo del database (o della configurazione o qualsiasi altra cosa) avverrà solo nei test e / o in fase di runtime.
Il solito consiglio contro i valori codificati riguarda i valori in cui il significato del valore non è evidente dal valore e può essere reso ovvio introducendo una costante o costanti simboliche che appaiono in più punti dove devono essere mantenute coerenti. Il significato delle chiavi nella configurazione o nella tabella delle proprietà è ovvio dal valore e di solito non appare in molti punti, quindi il consiglio non si applica.
Oppure, in modo più sintetico, se si ha un nome più descrittivo per il valore o se si può scrivere strongmente il valore attuale, creare una costante simbolica. Se il nome simbolico deriverebbe dal valore, non farlo.
... sembra che tu abbia il caso successivo.