Il database deve essere utilizzato per memorizzare le soglie e le configurazioni che verranno utilizzate dalla logica decisionale nel codice, ad es. "Le entrate degli utenti sono maggiori di X, suggerisci il nostro prodotto Premium" X sarà nel DB, ma il codice che controlla se Utente.Income > X dovrebbe essere nel tuo linguaggio C # / Java / altro tipo strong. Per questo non hai bisogno di altro che tabelle come
Create Table IntSettings(
name varchar(100) not null,
value int not null
).
Questa dichiarazione della tabella "tipo strong" evita equivoci come un altro programmatore che tenta di inserire "$ 1000000" per un'impostazione di prezzo perché ritengono di dover fornire la valuta per qualsiasi motivo. Questo fraintendimento potrebbe causare l'esplosione di parte inattesa del codice durante l'analisi delle impostazioni.
Un'altra cosa che puoi memorizzare nel tuo DB è testo di domanda / opzione e le loro traduzioni. Sarebbe come l'altra tabella delle impostazioni, tranne le colonne per il paese / regione.
Il database non dovrebbe codificare cose come le domande poste all'utente, quale schermata andare a quella successiva ecc. perché hanno il loro posto nella tua architettura.
L'unico vantaggio di questo processo decisionale nel tuo schema è che puoi apportare modifiche ad hoc in risposta ai bug. Ma hai anche maggiori probabilità di commettere errori facendo tutto in SQL.
Se ti ritrovi a dover cambiare rapidamente l'interfaccia utente (e non riuscire ad aspettare la pubblicazione di un codice) dovresti migliorare la tua pipeline di distribuzione e anche chiedere di avere una buona immagine della progettazione dell'interfaccia utente, della logica aziendale e dei requisiti .