Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dylemat nazewnictwa tabel:nazwy w liczbie pojedynczej i mnogiej

Miałem to samo pytanie i po przeczytaniu wszystkich odpowiedzi tutaj zdecydowanie pozostaję przy SINGULAR, powody:

Powód 1 (Pojęcie). Możesz pomyśleć o torebce zawierającej jabłka, takiej jak „AppleBag”, nie ma znaczenia, czy zawiera 0, 1 czy milion jabłek, zawsze jest to ta sama torebka. Tabele to po prostu kontenery, nazwa tabeli musi opisywać to, co zawiera, a nie ile zawiera danych. Ponadto koncepcja liczby mnogiej dotyczy bardziej języka mówionego (właściwie w celu ustalenia, czy istnieje jeden, czy więcej).

Powód 2 . (Wygoda). łatwiej jest wyjść z imionami w liczbie pojedynczej niż w liczbie mnogiej. Obiekty mogą mieć nieregularną liczbę mnogą lub w ogóle nie mieć liczby mnogiej, ale zawsze będą miały liczbę pojedynczą (z kilkoma wyjątkami, takimi jak Wiadomości).

  • Klient
  • Zamów
  • Użytkownik
  • Stan
  • Wiadomości

Powód 3 . (Estetyka i Porządek). Zwłaszcza w scenariuszach główny-szczegółowy lepiej się to czyta, lepiej dopasowuje według nazwy i ma bardziej logiczną kolejność (pierwszy wzorzec, drugi szczegół):

  • 1.Zamów
  • 2.Szczegóły zamówienia

W porównaniu z:

  • 1.Szczegóły zamówienia
  • 2.Zamówienia

Powód 4 (Prostota). Zbierz wszystko razem, nazwy tabel, klucze podstawowe, relacje, klasy encji… lepiej jest mieć świadomość istnienia tylko jednej nazwy (w liczbie pojedynczej) zamiast dwóch (klasa w liczbie pojedynczej, tabela w liczbie mnogiej, pole w liczbie pojedynczej, główny szczegół w liczbie pojedynczej… .)

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

Gdy już wiesz, że masz do czynienia z „Klientem”, możesz być pewien, że użyjesz tego samego słowa do wszystkich potrzeb związanych z interakcją z bazą danych.

Powód 5 . (Globalizacja). Świat się zmniejsza, możesz mieć ekipę różnych narodowości, nie każdy ma angielski jako język ojczysty. Dla programisty, który nie jest językiem ojczystym, łatwiej byłoby pomyśleć o „Repozytorium” niż o „Repozytoriach” lub „Statusie” zamiast o „Statusach”. Posiadanie pojedynczych nazw może prowadzić do mniejszej liczby błędów spowodowanych literówkami, zaoszczędzić czas, nie myśląc „czy to dziecko czy dzieci?”, a tym samym zwiększyć produktywność.

Powód 6 . (Dlaczego nie?). Może nawet zaoszczędzić czas pisania, zaoszczędzić miejsce na dysku, a nawet sprawić, że klawiatura komputera będzie działać dłużej!

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

Zapisałeś 3 litery, 3 bajty, 3 dodatkowe uderzenia klawiatury :)

I na koniec możesz nazwać tych, którzy mieszają się z zarezerwowanymi imionami, takimi jak:

  • Użytkownik> LoginUser, AppUser, SystemUser, CMSUser,...

Lub użyj niesławnych nawiasów kwadratowych [Użytkownik]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zbiorcze wstawianie częściowo cytowanego pliku CSV w programie SQL Server

  2. Magazyn zapytań SQL Server

  3. Dołączanie do rekordu daty MAX w grupie

  4. Konwertuj „smalldatetime” na „time” w SQL Server (przykłady T-SQL)

  5. Jak szybko napisać Select Query w SQL Server — SQL Server / TSQL Tutorial, część 108