2009-06-04 5 views
14

Eventuali duplicati:
Database, Table and Column Naming Conventions?Convenzioni di denominazione per le tabelle e le colonne nel database

Ogni volta che quando il nuovo progetto parte, sto pensando a convenzioni di denominazione di tabella e colonne nel database. Qual è il tuo caso e perché?

Caso 1. column_name
Caso 2. ColumnName
Caso 3. COLUMN_NAME
Caso 4. columnName

+1

@TheTXI: la domanda riguarda il prefisso tabella, non lo stile di denominazione – sasa

+0

+1 per la modifica della propria domanda ! –

risposta

18

È consigliabile utilizzare il caso n. 1 perché è privo di problemi di distinzione tra maiuscole e minuscole. Inoltre, il caso cammello fa schifo con gli acronimi.

columnID 
columnId 
columnIDAlternative 
columnIdAlternative 
RASCScore 
RascScore 

column_id 
column_id_alternative 
rasc_score 

Inoltre, gli spazi tra le parole sono visivamente più piacevoli rispetto al blocco di tutto insieme. Vale assolutamente la pena percepita di digitare un trattino basso. I caratteri di sottolineatura simulano gli spazi e i nomi e le frasi composti hanno spazi in una normale lingua scritta. TheOnlyPeopleToTypeLikeThisMayHaveBeenTheRomans.

+3

Non mi è mai piaciuto CamelCase e hai appena spiegato perché. – Xeoncross

+1

Quando inizi a usare Underscore inizialmente sembra buono, dopo un anno circa ti sentirai irritato. Soprattutto quando si utilizza il framework ORM in .Net – Ravia

+0

Potresti approfondire quale sia il collegamento tra i nomi delle tabelle e un framework ORM in .NET? –

2

Mi piace caso 2, i valori sembrano distinguersi per me meglio così. Qualunque cosa tu scelga, tienilo coerente!

2

Io uso caso 2 (ColumnName) - perché i caratteri di sottolineatura sono un dolore da digitare.

I caratteri di sottolineatura sono OK nei nomi di indice, trigger o altri oggetti che non vengono digitati di frequente. Li lascio fuori da tabelle, colonne, viste, nomi di proc memorizzati poiché questi sono nomi usati di frequente e il raggiungimento di tale sottolineatura può rallentare se lo si utilizza spesso.

0

Adoro camelCasing (4) grande leggibilità, senza sottolineatura

5

Sono d'accordo con # 2 per due motivi:

  1. sottolineatura sono un dolore da digitare.
  2. Nelle proprietà .Net sono solitamente rivestite in questo modo. Questo rende tutto il tuo naming match up - che è a portata di mano e aiuta nelle situazioni in cui si sta utilizzando un ORM.

Per coincidenza, credo che gli sviluppatori Java tendano a utilizzare il numero 4 nelle loro classi. Modificherei la mia risposta al n. 4 se il software client è in Java.

+1

... e caso n. 1 se il software è scritto in PHP? :) – sasa

7

Qualsiasi cosa decidiate di scegliere, attenersi allo stesso è la cosa più importante, cioè essere coerenti.

Preferisco # 2 in quanto questo è più leggibile e come accennato prima sottolineatura è brutto e fastidioso da digitare. # 4 è il secondo miglior. # 3 Mi piace meno, sia il maiuscolo che il carattere di sottolineatura sono eccessivi.

3

Io voto per "Qualunque sia quello utilizzato nel precedente progetto" La coerenza in questo caso è probabilmente più importante di qualsiasi particolare ideologia ...

1

nomino mie tabelle esattamente lo stesso che io chiamo gli oggetti che ho vado a creare per avvolgerli. Questo funziona bene con i moderni ORM (Object Relational Mapper) perché possono spesso creare un modello di oggetto per te in base alla struttura del tuo database (o viceversa).La risposta accettata sembra sminuire il "dolore di digitare un trattino basso", ma lo prendo sul serio. Soffrendo di RSI, specialmente nei miei mignoli, che uso per tenere premuti i tasti Maiusc e Ctrl, faccio assolutamente tutto il possibile per evitare inutili caratteri di sottolineatura. Ovviamente, una buona risposta a questo problema è rimappare il tasto CapsLock sul tasto Shift o sul tasto Underscore. Ma in ogni caso, aggiungo questa risposta a una vecchia domanda perché nessuno ha menzionato il fatto di lavorare con il tuo ORM. Dato che faccio la maggior parte della programmazione in .NET, la maggior parte delle mie proprietà sono in cammello e quindi chiamo anche le mie colonne db in cammello. Non ho assolutamente nessun problema con le abbreviazioni dei caschi. Quindi faccio cose del tipo:

PersonDao.GetIdByName ("Hello world").

Il rivestimento del cammello diventa decisamente fastidioso per i nomi lunghi ... ma poi, evito nomi lunghi. Di solito significa che ho organizzato le cose in modo errato. E se stabilisco che non l'ho fatto, beh ... in quei casi, i nomi lunghi sono così rari nel mio codice e la situazione così unica, che non mi rallenta comunque.

Penso che la denominazione sia assolutamente di fondamentale importanza. E proprio come alcune persone hanno un feticcio XML, altri hanno feticisti di database. Personalmente, mi piace usare i miei ORM per ignorare completamente il mio database (o il più possibile). Per facilitare questo, chiamo le mie colonne proprio come nomino le proprietà nel codice. Quindi, alla fine, sottolineano l'odio a parte, uso le convenzioni che esistono per il linguaggio in cui è presente il mio codice.

Problemi correlati