Singulár nebo plurál u názvů tabulek?


Notice: Trying to access array offset on value of type bool in /var/www/clients/client14/web43/web/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123

Taky vám vrtá hlavou, jestli pojmenovat tabulky v databázi jednotným (user) nebo množným(users) číslem? Nejste sami. Tento problém se řeší na všemožných internetových fórech a každý ze zastánců toho či onoho způsobu má svá pro a proti.

Přiznám se, že jsem dlouhou dobu používál plurál a to z téže důvodů, z jakých jste ho patrně používaly/používáte i vy. Dnes jsem však přešel na singulár.

Následujích pět důvodů uvádí proč:

1) Tabulka je sice „kontejner“ pro řádky (a proto dává smysl ji pojmenovat „users“), ale z formálního hlediska se jedná o relaci mezi daty (existuje relace mezi idlogin a name jednoho uživatele), tedy o relaci typu uživatel. A typ relace je v jednotném čísle, proto název user. Viz relační algebra.

2) Množné číslo se netvoří vždy stejným způsobem (child/children, adress/adresses, person/people). Můžou proto nastat zmatky při tvorbě cizích klíčů, kdy id_person odkazuje do tabulky people.

3) Při projekci (výběru) dat vypadá dotaz

SELECT person.login, person.name FROM person WHERE person.id=1

přirozeněji než

SELECT people.login, people.name FROM people WHERE people.id=1

4) Pokud používáte ORM techniku (např. skvělý SQLAlchemy) zjistíte že je daleko přirozenější a jednodušší mapovat „class User“ na relaci „user„. ORM navíc jména často odvozují od názvu tříd, takže si ušetříte taky trochu práce.

5) Singuláry jsou kratší.

Je samozřejmě na vás, který způsob budete používat, důležité je ho dodržovat 🙂

 

Sdílet na sociálních sítích