sql >> Databasteknik >  >> RDS >> Sqlserver

Tabellnamnsdilemma:Singular vs. pluralnamn

Jag hade samma fråga, och efter att ha läst alla svar här stannar jag definitivt hos SINGULAR, anledningar:

Skäl 1 (Begrepp). Du kan tänka dig påse innehållande äpplen som "AppleBag", det spelar ingen roll om det innehåller 0, 1 eller en miljon äpplen, det är alltid samma påse. Tabeller är bara det, behållare, tabellnamnet måste beskriva vad den innehåller, inte hur mycket data den innehåller. Dessutom handlar pluralbegreppet mer om ett talspråk (faktiskt för att avgöra om det finns ett eller flera).

Skäl 2 . (Bekvämlighet). det är lättare att komma ut med singularnamn än med plural. Objekt kan ha oregelbunden plural eller inte plural alls, men kommer alltid att ha en singular (med få undantag som News).

  • Kund
  • Beställ
  • Användare
  • Status
  • Nyheter

Skäl 3 . (Estetik och ordning). Speciellt i master-detalj scenarier läses detta bättre, anpassas bättre efter namn och har en mer logisk ordning (Master först, detalj andra):

  • 1.Beställ
  • 2.OrderDetail

Jämfört med:

  • 1. Orderdetaljer
  • 2.Beställningar

Skäl 4 (Enkelhet). Sammantaget är tabellnamn, primärnycklar, relationer, entitetsklasser... bättre att vara medveten om endast ett namn (singular) istället för två (singular klass, plural tabell, singularfält, singular-plural master-detalj.. .)

  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100

När du vet att du har att göra med "Kund", kan du vara säker på att du kommer att använda samma ord för alla dina databasinteraktionsbehov.

Skäl 5 . (Globalisering). Världen blir mindre, du kanske har ett team av olika nationaliteter, alla har inte engelska som modersmål. Det skulle vara lättare för en programmerare som inte har engelska som modersmål att tänka på "Repository" än på "Repositories", eller "Status" istället för "Status". Att ha singulära namn kan leda till färre fel orsakade av stavfel, spara tid genom att inte behöva tänka "är det barn eller barn?", vilket förbättrar produktiviteten.

Skäl 6 . (Varför inte?). Det kan till och med spara dig skrivtid, spara diskutrymme och till och med få datorns tangentbord att hålla längre!

  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 103

Du har sparat 3 bokstäver, 3 byte, 3 extra tangentbordsträffar :)

Och slutligen kan du namnge de som stökar till med reserverade namn som:

  • Användare> LoginUser, AppUser, SystemUser, CMSUser,...

Eller använd de ökända hakparenteserna [Användare]



  1. Bli tänd med Apache Spark – Del 1

  2. 8 sätt att lägga till dagar till ett datum i MariaDB

  3. Hur installerar jag SQLcl på Windows?

  4. Kan jag automatiskt skapa en tabell i PostgreSQL från en csv-fil med rubriker?