'first_name' vs 'name_first' per il raggruppamento di colonne SQL simili

1

Quando si crea una tabella con bit o dati simili come i nomi. È preferibile che il nome della colonna sia preceduto da un valore comune?

Considera una tabella per memorizzare le informazioni dell'utente. Guardando le colonne relative al nome utente possono essere strutturate come segue:

title
first_name
middle_name
last_name

Non sarebbe meglio definire tutte le colonne relative al nome utente con 'nome' (come mostrato di seguito) che porta a modelli di denominazione più coerenti?

name_title
name_first
name_middle
name_last
    
posta Jacob Wood 25.06.2016 - 10:28
fonte

2 risposte

1

Lo standard utilizza first_name , last_name , ecc.

Intendo lo standard non definito in modo formale (ad esempio in ISO 9000) ma in modo informale, un utilizzo che ho osservato in oltre 30 anni in dozzine di aziende e centinaia di sistemi, quindi uno standard informale. Non c'è niente che ti impedisca di fare le cose in un modo diverso se ha senso per la tua situazione, tuttavia:

  • Gli sviluppatori si aspettano già che i nomi utilizzino il formato last_name , first_name nelle pagine Web correnti, negli script e negli schemi di database. Quando sono così, lo sviluppatore non ha bisogno di imparare qualcosa di nuovo e questo rende lo sviluppo più facile poiché si concentrano su un codice più importante.
  • Gli altri sistemi lo utilizzano principalmente, quindi le interfacce sono spesso più semplici
  • I lettori per la prima volta non devono fermarsi per esaminare il codice / i dati per comprendere il motivo della denominazione insolita
  • La maggior parte delle applicazioni SQL che conosco, dalla riga di comando agli strumenti della GUI, tende a visualizzare le colonne della tabella di database nell'ordine in cui erano elencate nei comandi Crea tabella (e regolato da qualsiasi tabella di modifica). Quindi i campi sono spesso elencati insieme come preferiresti.
risposta data 25.06.2016 - 15:06
fonte
0

Mi sono sempre abituato al nome_primo ordine perché raggruppa efficacemente i campi rendendo l'intelligenza facile da usare.

Tuttavia, può diventare fastidioso quando si esegue il refactoring. ad esempio:

iterazione 1:

table person :
   firstName
   address

iterazione 2:

table person
    firstName //todo:: change this everywhere to match the new scheme
    nameSecond
    address

Addizionalmente se ne hai molti di questi suggerisce che potresti aver bisogno di più tabelle

table person
    nameId

table name
    id
    first
    last
    middle

Anche se ovviamente con l'esempio del nome questo è un po 'eccessivo.

.. pensandoci però, le persone possono avere n nomi forse

table name
    personId
    type //first, middle, last, nickname etc 
    value

è meglio !!

    
risposta data 25.06.2016 - 12:33
fonte

Leggi altre domande sui tag