sql >> Databáze >  >> RDS >> Sqlserver

Dilema pojmenování tabulek:Jednotné vs. množné číslo

Měl jsem stejnou otázku a po přečtení všech odpovědí zde rozhodně zůstanu u SINGULAR, důvody:

Důvod 1 (Pojem). Sáček s jablky si můžete představit jako "AppleBag", je jedno, zda obsahuje 0, 1 nebo milion jablek, vždy se jedná o stejný sáček. Tabulky jsou právě to, kontejnery, název tabulky musí popisovat, co obsahuje, ne kolik dat obsahuje. Kromě toho se množné číslo týká spíše mluveného jazyka (ve skutečnosti k určení, zda existuje jeden nebo více).

Důvod 2 . (Pohodlí). je snazší vyjít se jmény v jednotném čísle než se jmény v množném čísle. Objekty mohou mít nepravidelné množné číslo nebo vůbec ne množné číslo, ale vždy budou mít jednotné číslo (až na několik výjimek, jako jsou Zprávy).

  • Zákazník
  • Objednat
  • Uživatel
  • Stav
  • Novinky

Důvod 3 . (Estetika a pořádek). Speciálně ve scénářích master-detail se to lépe čte, lépe se zarovnává podle názvu a má logičtější pořadí (hlavní nejprve, detail druhý):

  • 1. Objednávka
  • 2.Detail objednávky

V porovnání s:

  • 1.Podrobnosti objednávky
  • 2. Objednávky

Důvod 4 (Jednoduchost). Dejte dohromady, názvy tabulek, primární klíče, vztahy, třídy entit... je lepší mít na paměti pouze jedno jméno (jednotné číslo) namísto dvou (jednotná třída, tabulka množného čísla, pole jednotného čísla-množné číslo hlavní-detail. .)

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

Jakmile budete vědět, že máte co do činění se „zákazníkem“, můžete si být jisti, že pro všechny potřeby interakce s databází použijete stejné slovo.

Důvod 5 . (Globalizace). Svět se zmenšuje, můžete mít tým různých národností, ne každý má angličtinu jako rodný jazyk. Pro programátora v jiném než původním anglickém jazyce by bylo snazší myslet na „úložiště“ než na „úložiště“ nebo „stav“ místo „stavy“. Jména v jednotném čísle mohou vést k menšímu počtu chyb způsobených překlepy, ušetřit čas tím, že nebudete muset přemýšlet „je to dítě nebo děti?“, a tím zvýšit produktivitu.

Důvod 6 . (Proč ne?). Může vám dokonce ušetřit čas na psaní, ušetřit místo na disku a dokonce prodloužit životnost klávesnice vašeho počítače!

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

Uložili jste 3 písmena, 3 bajty, 3 další klávesové zkratky :)

A nakonec můžete pojmenovat ty, kteří si pletou, vyhrazenými jmény jako:

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

Nebo použijte nechvalně známé hranaté závorky [Uživatel]



  1. Co znamená exec sp_reset_connection v SQL Server Profiler?

  2. Dokážete VYBRAT všechno, kromě 1 nebo 2 polí, bez spisovatelské křeče?

  3. SQL Server Query:Rychlý s doslovným, ale pomalý s proměnným

  4. Jak předat XML jako parametr do uložené procedury v Oracle