sql >> Database teknologi >  >> RDS >> Sqlserver

Tabelnavngivningsdilemma:Ental vs. flertalsnavne

Jeg havde det samme spørgsmål, og efter at have læst alle svarene her, bliver jeg bestemt med SINGULAR, grunde:

Årsag 1 (Koncept). Du kan tænke på pose med æbler som "AppleBag", det er lige meget om det indeholder 0, 1 eller en million æbler, det er altid den samme pose. Tabeller er bare det, containere, tabelnavnet skal beskrive, hvad det indeholder, ikke hvor meget data det indeholder. Derudover handler flertalsbegrebet mere om et talt sprog (faktisk for at afgøre, om der er en eller flere).

Årsag 2 . (Bekvemmelighed). det er lettere at komme ud med entalsnavne end med flertal. Objekter kan have uregelmæssige flertalsformer eller slet ikke flertal, men vil altid have en ental (med få undtagelser som Nyheder).

  • Kunde
  • Bestil
  • Bruger
  • Status
  • Nyheder

Årsag 3 . (Æstetik og orden). Specielt i master-detalje-scenarier læser dette bedre, tilpasser sig bedre efter navn og har mere logisk rækkefølge (Master først, Detail second):

  • 1. Bestil
  • 2.Ordredetalje

Sammenlignet med:

  • 1.Ordredetaljer
  • 2. Ordrer

Årsag 4 (Enkelthed). Sammenlagt er tabelnavne, primære nøgler, relationer, enhedsklasser... bedre kun at være opmærksom på ét navn (ental) i stedet for to (ental klasse, flertalstabel, ental felt, ental-flertal master-detalje.. .)

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

Når du ved, at du har at gøre med "Kunde", kan du være sikker på, at du vil bruge det samme ord til alle dine databaseinteraktionsbehov.

Årsag 5 . (Globalisering). Verden bliver mindre, du kan have et hold af forskellige nationaliteter, ikke alle har engelsk som modersmål. Det ville være lettere for en programmør, der ikke har engelsk som modersmål, at tænke på "Repository" end på "Repositories" eller "Status" i stedet for "Status". At have entalsnavne kan føre til færre fejl forårsaget af tastefejl, spare tid ved ikke at skulle tænke "er det barn eller børn?", og dermed forbedre produktiviteten.

Årsag 6 . (Hvorfor ikke?). Det kan endda spare dig skrivetid, spare dig diskplads og endda få dit computertastatur til at holde længere!

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

Du har gemt 3 bogstaver, 3 bytes, 3 ekstra tastaturhits :)

Og endelig kan du navngive dem, der roder med reserverede navne som:

  • Bruger> LoginUser, AppUser, SystemUser, CMSUser,...

Eller brug de berygtede firkantede parenteser [Bruger]



  1. Parametrér en SQL IN-sætning

  2. Vigtigheden af ​​varchar-længde i MySQL-tabel

  3. Fordele ved at bruge Microsoft Access-skabeloner

  4. Vedvarende UUID i PostgreSQL ved hjælp af JPA