Le peggiori pratiche nello sviluppo di applicazioni database [chiuso]

2

In contrasto a

Buone pratiche di progettazione del database

Volevo chiedere:
Quali sono le migliori pratiche peggiori che hai incontrato quando hai a che fare con il codice e il codice dell'applicazione del database di altre persone? database?

I miei finora sono:

  • Non inserire alcun vincolo di chiave esterna nel database (per facilità sviluppo di moduli web ...)
  • Query SQL mediante concatenazione di stringhe (n escape di ', nessun parametro)
  • Uso del codice non sicuro dal thread (con variabili statiche) per decrittografare la password del database ...
posta Quandary 13.12.2011 - 13:12
fonte

5 risposte

8

In nessun ordine particolare

DB

  • Logica aziendale divisa tra il livello dell'applicazione e il database (Processi / pacchetti memorizzati)
  • Impostazione degli account utente su db_owner (SQL Server)
  • Nessun controllo delle informazioni sensibili (E.G., ultimo aggiornamento dell'ultima data di aggiornamento)
  • Cancella password di testo e informazioni sensibili (E.G., numeri di carte di credito) memorizzate nelle tabelle del database.
  • Procedure memorizzate nidificate, abbiamo una applicazione al lavoro con una catena di 18 stored procedure
  • Miscelazione delle convenzioni di denominazione (tbl_SomeTable, TBL_SOMETABLE, SomeTable, SOMETABLE), basta sceglierne una e seguirla.
  • Consentire alle dimensioni della tabella di superare 8192 byte (SQL Server)
  • Nessun indice
risposta data 13.12.2011 - 13:20
fonte
6

N + 1 seleziona il problema .

Cioè, avere una query secondaria eseguire più volte in un ciclo stretto sui risultati di una query precedente (o di un terziario ... ecc ...).

    
risposta data 13.12.2011 - 13:21
fonte
5

Le cose che ho visto sono diventate il mio animale domestico:

  • Utilizzo di stringhe per tutti i dati (anziché date, numeri interi, ecc.)
  • Mancanza di normalizzazione
  • Uso gratuito dei cursori
  • Logica dell'interfaccia utente nelle stored procedure
risposta data 13.12.2011 - 13:28
fonte
3

Uso eccessivo di trigger. Una volta ho lavorato con un sistema in cui gran parte del lavoro effettivo si è verificato in trigger nel db. Questo ha creato i colli di bottiglia che avevano il nostro DBA che voleva dare la caccia agli autori originali e batterli a lungo.

    
risposta data 13.12.2011 - 13:32
fonte
3

La mancanza di qualsiasi tipo di controllo delle versioni del database, come una serie incrementale di script DDL, è troppo comune. Se il tuo "come configurare un nuovo ambiente di sviluppo" richiede una copia del db di produzione, questo probabilmente si applica a te.

    
risposta data 13.12.2011 - 13:44
fonte

Leggi altre domande sui tag