Miałem to samo pytanie i po przeczytaniu wszystkich odpowiedzi tutaj zdecydowanie pozostaję przy SINGULAR, powody:
Powód 1 (koncepcja). Możesz pomyśleć o torbie zawierającej jabłka takie jak „AppleBag”, nie ma znaczenia, czy zawiera 0, 1 czy milion jabłek, zawsze jest to ta sama torba. Tabele to po prostu to, że pojemniki, nazwa tabeli musi opisywać, co zawiera, a nie ile danych zawiera. Ponadto pojęcie liczby mnogiej dotyczy bardziej języka mówionego (w rzeczywistości w celu ustalenia, czy istnieje jeden czy więcej).
Powód 2 . (Wygoda). łatwiej jest wyjść z pojedynczymi nazwami niż z mnogimi. Obiekty mogą mieć nieregularne liczby mnogie lub wcale, ale zawsze będą miały liczbę pojedynczą (z kilkoma wyjątkami, takimi jak Wiadomości).
- Klient
- Zamówienie
- Użytkownik
- Status
- Aktualności
Powód 3 . (Estetyka i porządek). Zwłaszcza w scenariuszach master-detail, to czyta się lepiej, lepiej wyrównuje się według nazwy i ma bardziej logiczną kolejność (Master pierwszy, Detail drugi):
- 1. zamówienie
- 2. Zamówienie Szczegóły
W porównaniu do:
- 1. Szczegóły zamówienia
- 2. Zamówienia
Powód 4 (prostota). Podsumowując, nazwy tabel, klucze podstawowe, relacje, klasy jednostek ... lepiej być świadomym tylko jednej nazwy (liczba pojedyncza) zamiast dwóch (klasa pojedyncza, tabela w liczbie mnogiej, pole pojedyncze, liczba pojedyncza-liczba mnoga master-detail .. .)
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 staje się coraz mniejszy, możesz mieć zespół różnych narodowości, nie każdy ma angielski jako język ojczysty. Łatwiej byłoby programistom w innym języku angielskim myśleć o „repozytorium” niż o „repozytoriach” lub „statusie” zamiast „statusach”. Posiadanie pojedynczych nazw może prowadzić do mniejszej liczby błędów spowodowanych literówkami, oszczędzaj czas, nie myśląc „czy to dziecko czy dzieci?”, A tym samym poprawiając wydajność.
Powód 6 . (Dlaczego nie?). Może nawet zaoszczędzić czas pisania, zaoszczędzić miejsce na dysku, a nawet wydłużyć klawiaturę komputera!
SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 100
Zapisałeś 3 litery, 3 bajty, 3 dodatkowe naciśnięcia klawiatury :)
I wreszcie, możesz nazwać tych, którzy mają problemy z zarezerwowanymi nazwami, takimi jak:
- Użytkownik> LoginUser, AppUser, SystemUser, CMSUser, ...
Lub użyj niesławnych nawiasów kwadratowych [Użytkownik]