it-swarm-eu.dev

Název množného čísla v jednotném čísle tabulky

Jak mám pojmenovat své tabulky při vytváření nové databáze?

Singulární: Client nebo množné číslo: Clients?

43

Na tobě. Jen buďte důslední.

osobně Upřednostňuji singulární na základě toho, co každý * řádek ukládá: objednávka, produkt, uživatel, položka atd.

Odpovídá mému modelování (prostřednictvím modelování objektových rolí), kde používám jedinečné entity/typy.

Upravit:

Jedním z důvodů je, že množné číslo selže, pokud máte tabulky odkazů:
Orders, Products by znamenalo OrderProducts nebo OrdersProducts. Ani to zní správně

Nebo tabulky historie (samozřejmě můžete použít schémata):
Orders -> OrdersHistory nebo (ne!) OrdersHistories? Nebylo by Order-> OrderHistory lepší?

44
gbn

Pokud jde o singulární versus množné názvy tabulek, zdá se, že předmět je kontroverzní, ale neměl by být.

Zatímco tabulka je kolekce více záznamů, tabulka je pojmenována po definici jednoho typu záznamu, který obsahuje. Pokud bylo v tabulce povoleno mít jiný název než název typu záznamu, který obsahuje, můžete této tabulce dát množné číslo, takže byste mohli mít například tabulku Zaměstnanci obsahující více záznamů o zaměstnancích. Návrhář jazyka SQL však neposkytl samostatné názvy tabulek a typů záznamů.

Věci fungují logičtěji pro objektově orientované programy, které používají data, pokud je název typu záznamu (a rozšířen název tabulky) zachován singulární, protože bude odpovídat názvu třídy, kterou byste použili k popisu jednoho záznamu. .

Pokud chcete v programu identifikovat kolekci, můžete použít množné číslo nebo lépe použít vhodný modifikátor, například EmployeeList nebo EmployeeArray.

Existuje také problém s nepravidelnými množnými čísly pro automatické generování kódu a programátory, kteří mají různé jazykové pozadí nebo představy o vytváření množných čísel v programu.

Anglický jazyk není dobrý a správný programovací jazyk, a pokusit se přizpůsobit příkazy databáze a programu anglickému jazyku, protože čtení těchto prohlášení znělo lépe, je chyba.

8
Bruce Patin

Stejně jako @ gbn's answer si myslím, že je to většinou otázka preferencí, a stejně jako on doporučuji, aby jakákoli volba, kterou jste udělali, byla aplikována všude (alespoň v té DB). Konzistence stojí za to.

Moje preference však je, že množné číslo zní lépe v příkazech SELECT:

SELECT Id, Name, Status 
FROM   Persons
WHERE  Status <> 5  --5 meaning deleted

Myslím, že v tomto případě je v tabulce alespoň několik osob a několik z nich je vráceno klientovi.

5
Andrei Rînea

„objednávka“ je vyhrazené slovo. "objednávky" není

„uživatel“ je vyhrazené slovo. „uživatelé“ není

„relace“ je vyhrazené slovo. "relace" nejsou

"result" je vyhrazené slovo. "výsledky" nejsou

„relativní“ je vyhrazené slovo. „příbuzní“ nejsou

...

Vypadají jako obyčejná slova, která by mohla jít do obchodní databáze. Zdá se, že množná slova jsou méně klíčová než klíčová slova. Proto by mohlo být užitečné použít více názvů tabulek, aby nedošlo ke konfliktu s klíčovými slovy SQL.

5
Neil McGuigan

Věřím, že tabulka SQL by měla mít více jmen. Jednoduše to čte mnohem lépe.

Tabulka knih by měla být nazývána knihami. ORM by měl používat stejnou konvenci. Objekt Knihy je kolekce a předsedá všem záznamům v tabulce Knihy. Objekt knihy předsedá jedinému záznamu.

Díky tomu je kódování přirozenější.

select name, publication_date from books where publication_date > '2000-01-01';

books = Books()
for book in books.get("publication_date >= '2000-01-01'"):
    print book.name
1
dlink

Po několika letech práce s programováním jsem dospěl k závěru, že pluralizace je zbytečná komplikace. Můj názor je, že podle filozofie KISS==================================================================.

1
ColacX

Díváme se na věci z různých perspektiv a myslím si, že tyto dva tábory jsou identifikovány:

Singular ("user")
Osoba, která provádí korelaci mezi názvem tabulky a skutečností, že představuje kontejner, který může obsahovat více řádků.

Takže „kontejner uživatele“ může obsahovat více řádků.

Plural ("users")
Osoba, která neprovede korelaci mezi názvem tabulky a skutečností, že představuje kontejner. Samozřejmě vědí, že se jedná o kontejner, ale ve jménu není.

např.
„Vaječný karton“ může obsahovat více vajec, ale je to zřejmé, protože název kontejneru je v názvu, což poskytuje potenciál pro více vajec. S jedinečným názvem tabulky „user“ však v názvu není odkaz na kontejner. např. „user_container“ by bylo pravděpodobně přijatelné pro lidi, kteří dávají přednost množným číslům.

Domnívám se, že je to také kvůli mnohaletým běžným praktikám a ve většině výukových materiálů online.


To vše řekl, myslím si, že technicky singulární je přesnější vzhledem k tomu, že pojmenováváme jeden kontejner a kontejnery mohou obsahovat více (nebo jednotlivé) řádky.
Zdá se lidem špatné, protože mentálně propojují název tabulky s obsahem (více řádků vyžaduje množné jméno), spíše než mentálně propojuje pojmenovaný kontejner s obsahem (kontejner umožňuje více).

Jako vždy, když často není správné a špatné a je to spíše o tom, co vyhovuje scénáři, a co je důležité, je v souladu s tím, co si vyberete.

Pokud děláte projekt výhradně a není žádný skutečný důvod jít v obou směrech dělat, co si myslíte, že je nejlepší, nebo jen preference. Použijte totéž, když v dev týmu, a jen přijít k jednomyslnému rozhodnutí.

0
James

Je to velmi osobní věc. Používám singulární formu 30 let. Ale vidím, proč lidé mají rádi množné číslo. Knihy - autoři jsou zajímaví, protože si myslím, že knihkupci nejsou špatní. Kniha může mít jednoho nebo více autorů. A autoři možná napsali jednu nebo více knih (např. Spoluautorů). Záleží také na tom, jak nakládáte s knihami napsanými více než jedním autorem. Souhlasím s dalšími odpověďmi; vyberte si jeden a buďte konzistentní. Pokud jde o vyhrazená slova. Myslím, že není těžké přijít s názvy řešení. uživatel -> app_user, session -> app_session, order -> customer_order

0
Ray