19. november 2010 - 13:11Der er
13 kommentarer og 2 løsninger
MS navngivning af klasser og db tabeller
Jeg har et spørgsmål til korrekt navngivning af klasser og de tabeller de skal ligge i, i databasen.
Hvis jeg har en klasse som hedder f.eks Person, eller Activity, skal tabellen i databasen så hedder det samme, altså, Person og Activity, eller skal det være deres grammatiske flertals stavelser, Persons og Activities.
Hvad er best practice for .NET og MSSQL.
et ekstra spørgsmål er, skal tabelnavnet skrives med små bogstaver, eller skal første bogstav være stort.
Tak for svaret. Jeg gør det samme, bortset fra PersonId. Jeg har længe overvejet om jeg skulle gøre det, da joins netop bliver meget mere overskuelige.
Burde PersonId ikke være PersonID ? Mener at jeg læste at "ord" på under 3 karakterer altid skal stå med 2 store bogstaver.
Nogle anbefaler også at bruge _ imellem ord. Person_ID. Er der nogen som kender til den måde at gøre det på?
MS har offentliggjordt en navngivnings standard for .NET - medmindre du har meget god grund til at afvige fra den, så følg den slavisk.
Den siger XxxYyyZzz fremfor noget med underscore i.
På .NET siden er ental/flertal ret klart. En klasse Person repræsenterer en person mens en klasse Persons indeholde flere personer (kunne f.eks. indeholde en List<Person>).
På database siden er det lidt mere grumset.
tbl_xxxx ser ikke pænt ud. Det er jo reelt en form for ungarsk notation og den er opgivet idag (vbortset fra legacy Win C/C++).
Om du vil bruge ental eller flertal for tabel navne er åbent. Nogen bruger det ene. Nogen bruger det andet.
Jeg ville nok vælge ental fordi visse tools defaulter til forventet tabelnavn = klassenavn.
Med hensyn til casing er der også forskellig brug.
Jeg plejer at bruge all lowercase for navne i databasen. Fordi all uppercase for SQL keywords og all lowercase for navne synes jeg gør SQL sætninger nemmere at læse.
Enig i alt ... holder dog casing på samme måde i min SQL db, men det er et fint argument med det ...
SELECT * FROM Persons WHERE PersonId = 10
SQL plejer jeg at skrive som overstående ... og ja, måske endnu nemmere at læse hvis alle ens columns/tables var med små bogstaver ... men en lille ting.
Ja jeg holder også tabelnavne i flertal og Id med lille d :) Jeg syntes at huske FxCop meldte fejl hvis det var ID.
Derudover prefixer jeg tabelnavne med t og views med v, sprocs med sp (uden underscore), functions med fn - det er ikke alle der er enige heri, men det er vitterligt nemmere at finde ud af når man sidder på databasen.
PK navngiver jeg altid med tabelnavn + Id og FK giver sig selv og det er til at forstå når man kigger i tabellen.
På et tidspunkt lowercasede jeg tabelnavne, men det er jeg gået væk fra.
Gør også overstående, men ikke på table navne ... med ORM's gider jeg ikke til at skulle fjerne prefix ...
Men som du selv siger Janus, så er det ikke noget verden går under af ... de fleste ting i SQL verdenen er personlige præferences.
Overstående guide lines kan være fornuftige hvis man er i et miljø med mange views, sp, functions og tables, så ville det give god mening, men de fleste i dag har ORM's og bruger ikke databasen til andet end tables.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.