sql >> Database >  >> RDS >> Sqlserver

Dilemma tabelnaamgeving:enkelvoud versus meervoudsnamen

Ik had dezelfde vraag, en na het lezen van alle antwoorden hier blijf ik zeker bij SINGULAR, redenen:

Reden 1 (Concept). Je kunt denken aan een zak met appels zoals "AppleBag", het maakt niet uit of er 0, 1 of een miljoen appels in zit, het is altijd dezelfde zak. Tabellen zijn precies dat, containers, de tabelnaam moet beschrijven wat het bevat, niet hoeveel gegevens het bevat. Bovendien gaat het meervoudsconcept meer over een gesproken taal (eigenlijk om te bepalen of er een of meer is).

Reden 2 . (Gemak). het is gemakkelijker om met enkelvoudige namen te komen, dan met meervoudige. Objecten kunnen een onregelmatig meervoud hebben of helemaal geen meervoud, maar zullen altijd een enkelvoud hebben (met enkele uitzonderingen zoals Nieuws).

  • Klant
  • Bestellen
  • Gebruiker
  • Status
  • Nieuws

Reden 3 . (Esthetiek en Orde). Vooral in master-detailscenario's leest dit beter, sluit het beter aan op naam en heeft het een meer logische volgorde (Master eerst, Detail tweede):

  • 1.Bestelling
  • 2.OrderDetail

Vergeleken met:

  • 1.OrderDetails
  • 2.Bestellingen

Reden 4 (Eenvoud). Alles bij elkaar, Tabelnamen, Primaire Sleutels, Relaties, Entiteitsklassen... is het beter om je bewust te zijn van slechts één naam (enkelvoud) in plaats van twee (enkelvoud klasse, meervoudstabel, enkelvoud veld, enkelvoud-meervoud master-detail.. .)

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

Als u eenmaal weet dat u met "Klant" te maken heeft, kunt u er zeker van zijn dat u hetzelfde woord zult gebruiken voor al uw behoeften op het gebied van database-interactie.

Reden 5 . (Globalisering). De wereld wordt kleiner, je hebt misschien een team van verschillende nationaliteiten, niet iedereen heeft Engels als moedertaal. Het zou gemakkelijker zijn voor een niet-native Engelstalige programmeur om te denken aan "Repository" dan aan "Repositories" of "Status" in plaats van "Statuses". Het hebben van enkelvoudige namen kan leiden tot minder fouten veroorzaakt door typefouten, tijd besparen door niet te hoeven denken "Is het een kind of kinderen?", waardoor de productiviteit wordt verbeterd.

Reden 6 . (Waarom niet?). Het kan u zelfs schrijftijd besparen, schijfruimte besparen en zelfs uw computertoetsenbord langer laten meegaan!

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

Je hebt 3 letters, 3 bytes, 3 extra toetsen op het toetsenbord opgeslagen :)

En tot slot kun je degenen die met gereserveerde namen knoeien een naam geven, zoals:

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

Of gebruik de beruchte vierkante haken [Gebruiker]



  1. Hoe te ontsnappen aan enkele aanhalingstekens in MySQL

  2. Prestatietests met MySQLdump en het MySQL Shell-hulpprogramma

  3. Postgres - Rijen naar kolommen transponeren

  4. Een beperking om het invoegen van een lege string in MySQL te voorkomen