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

Dilemma dei nomi delle tabelle:nomi singolari e plurali

Avevo la stessa domanda e dopo aver letto tutte le risposte qui rimango sicuramente con SINGULAR, ragioni:

Motivo 1 (Concetto). Puoi pensare a buste contenenti mele come "AppleBag", non importa se contiene 0, 1 o un milione di mele, è sempre la stessa busta. Le tabelle sono proprio questo, contenitori, il nome della tabella deve descrivere cosa contiene, non quanti dati contiene. Inoltre, il concetto plurale riguarda più una lingua parlata (in realtà per determinare se ce n'è una o più).

Motivo 2 . (Convenienza). è più facile uscire con nomi singolari, che plurali. Gli oggetti possono avere plurali irregolari o non plurali affatto, ma ne avranno sempre uno singolare (con poche eccezioni come News).

  • Cliente
  • Ordine
  • Utente
  • Stato
  • Notizie

Motivo 3 . (Estetica e Ordine). Specialmente negli scenari Master-Detail, questo legge meglio, si allinea meglio per nome e ha un ordine più logico (Master prima, Dettagli secondo):

  • 1.Ordine
  • 2.Dettagli ordine

Rispetto a:

  • 1.Dettagli dell'ordine
  • 2.Ordini

Motivo 4 (Semplicità). Mettendo insieme, Nomi di tabelle, Chiavi primarie, Relazioni, Classi di entità... è meglio essere a conoscenza di un solo nome (singolare) anziché di due (classe singolare, tabella plurale, campo singolare, master-dettaglio singolare-plurale.. .)

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

Una volta che sai che hai a che fare con "Cliente", puoi essere certo che utilizzerai la stessa parola per tutte le tue esigenze di interazione con il database.

Motivo 5 . (Globalizzazione). Il mondo sta diventando più piccolo, potresti avere una squadra di diverse nazionalità, non tutti hanno l'inglese come lingua madre. Sarebbe più facile per un programmatore di lingua inglese non nativo pensare a "Repository" piuttosto che a "Repository" o "Status" invece di "Status". Avere nomi singolari può portare a meno errori causati da errori di battitura, risparmiare tempo non dovendo pensare "è Bambino o Bambini?", migliorando così la produttività.

Motivo 6 . (Perchè no?). Può persino farti risparmiare tempo di scrittura, risparmiare spazio su disco e persino far durare più a lungo la tastiera del tuo computer!

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

Hai salvato 3 lettere, 3 byte, 3 tasti in più :)

E infine, puoi nominare quelli che fanno casino con nomi riservati come:

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

Oppure usa le famigerate parentesi quadre [Utente]