Domanda

Sto progettando un database e recentemente ho nominato una colonna in una tabella DayOfWeek, dimenticando completamente che DayOfWeek è una funzione integrata in SQL Server. Ora sto decidendo se dovrei lasciarlo così com'è e fare riferimento alla colonna con parentesi quadre [DayOfWeek] o modificare il nome della colonna per evitare conflitti in futuro. Non sono troppo lontano nel progetto, quindi cambiarlo non è troppo difficile. Il dibattito nella mia testa è che il nome della colonna di DayOfWeek ha molto senso per il suo scopo, quindi voglio davvero usarlo ... ma è una parola riservata ... e potrebbe causare dolore in futuro (soprattutto se Devo sempre mettere parentesi quadre attorno ad esso quando si fa riferimento alla colonna).

Cosa pensano tutti?

È stato utile?

Soluzione

Lo cambierei - ho una tabella legacy chiamata user - è sempre una seccatura con le parentesi quadre. forse chiamalo DayOfWeekName o DayOFWeekId

Josh

Altri suggerimenti

Jeff,

Se non sei troppo in basso per rinominare la colonna (relativamente) indolore, ti consiglio di cambiarlo. Hai identificato un probabile mal di testa futuro per l'equipaggio di manutenzione, e immagino che sarebbe effettivamente meno costoso (nel tempo) ripulirlo ora, soprattutto considerando che rinominare qualcosa non è l'inferno su ruote dal momento che il avvento di una ricerca veramente efficace e sostituzione della funzionalità negli editor di testo e negli IDE.

La parte veramente difficile della ridenominazione sta acquisendo la comprensione necessaria per svolgere il lavoro in sicurezza. Sei unico (essendo l'autore) ad avere quella comprensione. Se mi chiedessi (solo per esempio) di fare il lavoro, probabilmente non sarebbe una proposta economica.

Quindi ... +1 per riparare da solo la ventosa ... e +2 per non farlo di nuovo ;-)

Saluti. Keith.

Mi assicuro sempre di non usare mai una parola chiave come inizio di alcuna variabile / oggetto / funzione semplicemente perché non sei mai sicuro che la tua lingua di destinazione piacerà. Spesso può generare errori stravaganti che richiedono del tempo per rintracciarli. Anche se il controllo della sintassi lo rileva, significa che hai perso più tempo rispetto a se fosse stato un nome diverso come FurryKitten .

Eviterei DayOfWeek e opterei per qualcosa di completamente diverso, forse Weekday o DayName . Salva solo seccature.

Inoltre - le parentesi quadre creano solo mal di testa e ci sono molti sviluppatori SQL là fuori che non usano le parentesi quadre - i nuovi sviluppatori finiranno per creare "non parentesi" codice per abitudine per un po 'di tempo dopo che si sono uniti al team. Convenzioni non comuni dovrebbero essere evitate se possibile.

cambiarlo se è facile. Ma come buona pratica userei le parentesi quadre ovunque. Una volta abituato, non è più una seccatura che mettere spazio tra le parole.

Qui abbiamo una tabella chiamata Utente. Se possibile, lo cambierei. Sebbene Josh sia corretto, puoi posizionare parentesi quadre per indicare che è una tabella, che l'attività invecchia molto rapidamente. L'uso di parole riservate come tabelle rende anche difficile per altri sviluppatori. Se qualcuno non sa che è una parola riservata, può essere difficile determinare perché una query non funziona.

Se si utilizza una libreria adattatore / astrazione DB per ottenere dati dal database, non preoccuparsi. La classe sfuggirà ai nomi delle colonne per te. Se si scrivono query SQL da soli, è possibile che si verifichino dei problemi. Devi sfuggire ai nomi delle colonne nelle tue query.

P.S. Ricordo, poche volte ero in una situazione come te. Ma sono stato nominato colonna come " ordine " : -)

Eviterei anche di usare parole riservate, potresti facilmente finire nei guai se non stai prestando attenzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top