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]