Na navigaci | Klávesové zkratky

Translate to English… Ins Deutsche übersetzen…

Databázové tabulky: singulár nebo plurál?

Vzpomínka na krásné chvíle na www.synthesia.cz Rád bych se zeptal všech ctěných programátorů, jestli pro databázové tabulky volí názvy v jednotném nebo množném čísle? Tedy používáte User, Password, Order nebo Users, Passwords, Orders? Nebo se dokonce přikláníte k českým názvům (uzivatele, hesla, objednavky)?

Jak nazýváte tabulky obsahující jen cizí klíče? A pole s těmito klíči?

A co v případě programovacích jazyků: dáváte polím názvy v singuláru nebo plurálu? Tedy $modules = array() nebo $module = array()?

Komentáře

  1. Dero #1

    avatar

    Plurál, prosím. Ale bohužel nejsem programátor a silně pochybuji, že by se našel někdo, kdo by mne ctil.

    před 11 lety
  2. Rene http://blog.renestein.net #2

    Otazka ohledne kodovaciho stylu, to zas bude flame ;)

    U tabulek pouzivam jednotne cislo a anglicke nazvy.
    U poli pouzivam vetsinou mnozne cislo.

    I kdyz myslim, ze tohle jsou jen kosmeticke zalezitosti, bez zasadniho vlivu na kvalitu aplikace ;)

    před 11 lety
  3. Bochi http://johanesville.net #3

    V poslední době jsem si ustálil vlastní štábní kulturu u názvů polí na angličtině a plurálu. Čeština mi v mnoha případech připadala málo jednoznačná a singulár zase mnohdy zavádějící. U databázových tabulek stejně s tím, že v názvech sloupců bych spíše dával přednost singuláru. Možná je to trochu nekonzistentní, ale proti gustu žádný dišputát, že?

    před 11 lety
  4. nebko #4

    avatar

    Budu stručný: u všeho plurál anglicky :)

    před 11 lety
  5. e-Jirka #5

    Plural cesky. A cizi klice napr. pouze prvnimi 3 pismeny z puvodniho nazvu :-)

    před 11 lety
  6. soundake #6

    avatar

    Plurál u názvů tabulek. Občas bodnou i prefixy. Vše anglicky, zdá se mi angličtina vhodnější, když už jsou i názvy funkcí v angličtině. U názvů polí je to různé (i když to asi není vždy vhodné), ale angličtina zůstává.

    Každopádně je to úplně fuk, jen to chce se držet toho svého jednoho „stylu“ ;)

    před 11 lety
  7. Petr S http://programator.digitallsoftworks.com #7

    Když bych kodil v C++, použil bych anglické pojmenování. Ale např. v tabulce v MySQL mam vse cesky (plurál).

    před 11 lety
  8. David Majda http://www.majda.cz #8

    avatar

    Všechny tabulky nazývám anglicky a plurálem, protože SQL příkazy tak znějí víc jako věty. Ale primární klíče jsou singulárem (tabulka „orders“ má klíč „id_order“), zní mi to logičtěji.

    Tabulky s cizími klíči: Kombinuju názvy spojovaných entit, např. tabulka „users_groups“ by obsahovala klíče „id_user“ a „id_group“.

    Obvykle všechny tabulky doplňuju ještě prefixem dané aplikace, aby mohla být 1 fyzická databáze využívána pro víc aplikací a tabulky se nepletly do sebe. Pokud má apliakce více modulů, dopňuju ještě prefix modulu, a pak jsou ty názvy už docela zajímavé ;)

    Pole v programovacích jazycích zásadně v plurálu, singulár je vyhrazen pro jednu jeho položku. Konstrukce jako „foreach ($animals as $animal) {…}“ pak zní vcelku přirozeně.

    před 11 lety | reagoval [18] Brano [19] David Grudl
  9. Jirka #9

    Anglicky a singulár. Nazvy tabulek doplnuji prefixem urcujicim modul aplikace: core_setting, shop_order, shop_customer atd.

    před 11 lety
  10. peCan http://pecan.wz.cz #10

    Pouzivam na tabulky anglicke nazvy v pluralu a v php mam promenne cesky. dulezite je abych se v tom vyznal, kazdy ma svuj styl:-)

    před 11 lety
  11. Pavel Prostřední http://hrrp://www.finish.cz/ #11

    Taky budu hlasovat! :)

    Plurál anglicky

    před 11 lety
  12. johno http://johno.jsmf.net/ #12

    avatar

    Anglicky, plurál a cudzie kľúče v tvare creator_id.

    Tabuľky, ktoré majú len cudzie kľúče? To myslíš prepojovacie, kvôli reláciám M:N?

    Tak tie, keď neviem poriadne nazvať vidím ako „bad smell“ a rovno sa zamýšľam nad lepším návrhom. Vačšinou to však skončí ako categorizations, occurrences, authorships,…

    před 11 lety
  13. johno http://johno.jsmf.net/ #13

    avatar

    No a tie polia tiež samozrejme anglicky a v plurále.

    před 11 lety
  14. carnero http://www.carnero.info #14

    cesky a plurál, většinou. Komentáře uživatelů jsou v tabulce na_smazani, což není ani jedno.

    před 11 lety
  15. Pin007 #15

    avatar

    Ja pouzivam jak na tabulky tak na pole anglicky singular. Parovaci tabulky pak casti jmen tabulek spojenych mlckou (‚-‘).

    Co se tyce promenych znam jednoho, ktery takhle zacne kodit a na jemna promenych pouziva abecedu, kdyz dojde, pokracuje aa, ab… Je to pak celkem dobra krizovka, neco doplnit nebo upravit, vrele doporucuji :-)

    před 11 lety | reagoval [17] johno
  16. Pin007 #16

    avatar

    na_smazani vede… kam se hrabe abeceda :-D

    před 11 lety
  17. johno http://johno.jsmf.net/ #17

    avatar

    #15 Pin007, A nevolá sa ten tvoj kolega náhodou priezviskom Obfuskátor?

    před 11 lety | reagoval [19] David Grudl [20] Pin007
  18. Brano #18

    Prikláňam sa k #8 David Majda

    před 11 lety
  19. David Grudl http://davidgrudl.com #19

    avatar

    #8 Davide Majdo, dělám to v podstatě stejně. Jen tabulky s cizími klíčemi spojuji pomocí 2, tedy users2groups.

    #17 johno, :-)

    A co tabulky nazývat ‚table1‘, ‚table2‘ … a v nich sloupce ‚A‘, ‚B‘, … ‚AA‘, … ‚ON‘…, prostě alá Excel? Myslím si, že takové SELECT m*SQR(c) AS e FROM table69 AS as INNER JOIN tableTky AS ass ON on = off WHERE WILD ROSES > 0 ORDER 1*joint HAVING fun zní věru dobře

    před 11 lety | reagoval [20] Pin007 [21] carnero [41] martin
  20. Pin007 #20

    avatar

    #17 johno, to sice ne, ale ma k nemu blizko ;)

    #19 Davide Grudle, padam ze zidle :-D

    před 11 lety
  21. carnero http://www.carnero.info #21

    #19 Davide Grudle, Nechceš se dát na psaní pohádek a příběhů v SQL? Jak to tak vypadá, šlo by Ti to :)

    před 11 lety
  22. mafo http://mafo.sk #22

    zvacsa plural a anglicky, avsak casto v tom mam bordel, a dlho rozmyslam ci som html blok alebo classu nazval users alebo user

    ale pri tipovani mam uspesnost 50%!;)

    před 11 lety
  23. Adam Hošek http://mamuf.webik.info/ #23

    avatar

    Zásada číslo jedna – vše anglicky. Angličtina má jednoznačně kratší a srozumitelnější slovíčka. A navíc jsme zvyklí z identifikátorů fcí a klíčových slov. Navíc u češtiny by to bylo krkolomné kvůli ohýbání slov :).

    Taky trochu řešim dilema, zdali singulár nebo plurál. Zatim jsem nedošel k definitivnímu závěru, ale spíš používám singulár :).

    před 11 lety
  24. Pavel #24

    Nejsem databázový specialista, ale mám tušení (a to hodně silné), že jasným doporučením ve většině knih a článků je singulár. Osobně se tím řídím, aniž bych za tím hledal nějakou větší logiku. Pak vše píšu anglicky, ale na tom určitě nesejde, pokud na softwaru nespolupracuje i nějaký cizinec.

    před 11 lety
  25. David Grudl http://davidgrudl.com #25

    avatar

    Odborné zdroje skutečně doporučují pro tabulky jednotné číslo. Mé podvědomí naopak číslo množné. Ovšem odborné zdroje jsou moudřejší, proto ustoupí ;)

    Asi nejdůležitější je si v tom udělat sám pro sebe jasno a přísně dodržovat svou (ale rozumnou!) konvenci.

    před 11 lety
  26. llook http://llook.wz.cz/weblog/ #26

    avatar

    Nazvy tabulek ang. plural – users, loosers, items… a nazvy poli ang. singular – name, password, content atd.

    Doted jsem to delal tak nejak intuitivne, jestli zacnu s Cake Frameworkem, tak budu mit i prakticky duvod – tam pouzivany objektove-relacni mapovani predpoklada, ze kdyz se trida jmenuje User, tak predstavuje zaznam z tabulky Users.

    p.s. Sorry za diakritiku, stavkuje mi Opera i FF, tak pouzivam Dillo.

    před 11 lety | reagoval [27] David Grudl
  27. David Grudl http://davidgrudl.com #27

    avatar

    #26 llooku, Dildo? jojo, to je fajn :-D

    před 11 lety
  28. charlie #28

    anglicky a plural.. a btw dobrej obrazek co doplnuje spot.. synthesia.. ach, to byly casy..:)

    před 11 lety
  29. Arthur Dent #29

    Já všechny tabulky a pole zásadně a vždy pojmenovávám tak, jak mě v danou chvíli napadne! :)

    A od doby, kdy jsem se vytrestal se sloupcem MySQL tabulky „posts“, pojmenovaným „text“, jsem schopný pojmenovat sloupce třeba „id, id_parent, title, author, obsah“. Purismus nepurismus…

    Ale pokud cítím, že nějaká logika velí dát množné číslo, tak ho dám, pokud cítím potřebu jednotného, dám jednotné. Hezky to vypadá třeba v foreach ($auta as $auto)… či v select jmeno, prijmeni from lidi

    před 11 lety | reagoval [51] SQi
  30. Solvina #30

    avatar

    Anglictina bez debaty. Proc jednotne cislo? Inu staci si precist neco o datovem modelovani (odborne zdroje).

    před 11 lety
  31. maarlin http://simko-cz.com #31

    Vždycky cesky a vetsinou plural.

    před 11 lety
  32. Ladislav Martinčík #32

    avatar

    Z velké části anglicky a plurál. Používám to už hodně dlouho, ale správně jsem to začal používat až když jsem se angažoval do Ruby a hlavně do Ruby on Rails. Tento framework obsahuje „lightweight“ ORM, ktere v základu předpokládá, že pokud uděláte třídu „Human“ tak tabulka se bude jmenovat „people“. Spusta lidí tvrdí že používá plural, ale jenom málo lidí si dá opravdu práci najít si angl. plurál k danému slovu (prostě přidávají na konec jenom „s“). Angl. hlavně kvuli cizincům, kteří sem tam nahlížejí do kódu, a také z důvodů toho, že většina jazyků je založena na angl. a je to tak jednodušší. V tomhle ohledu češtinu moc nemám rad!

    před 11 lety
  33. Štěpán Svoboda #33

    avatar

    Já používám na názvy tabulek: anglický singulár, na názvy polí: anglický singulár, na názvy polí: anglický plurál – (jak již někdo zmínil <i>foreach)

    Trvalo mi dlouho než jsem si ustálil nějaká svá pravidla – češtinu jsem používal také, ale časem jsem zjistil, že mi čeština bez diakritiky leze drobátko na nervy.

    před 11 lety
  34. Jan Havrda http://www.write.cz/ #34

    Anglicky i česky, vždy v jednotném čísle. Název tabulky je jedna věc, ale dál pracuji v XML a formulářích s jednotlivými položkami a tak je logičtější singulár. Dvojí značení (plurál/singulár) by pak znesnadňovalo párování informací.

    Př.

    XSL : <xsl:foreach select="users/user">

    HTML: <input name="user_1_surname">

    Angličtinu a češtinu volně mixuji, systémová data anglicky, specifická data českých stránek česky.

    před 11 lety
  35. rarous http://rarous.aspweb.cz #35

    avatar

    Když si namodeluju databázi, tak mám entity v češtině a singuláru, dělat dvoji práci mi přijde zbytečné (abych to nějak přejmenovával). Navíc jsem čech a zatim se nechystám svoje kódy sdílet s cizinci tak píšu všechno v češtině, ikdyž pak vznikaj zajímavý názvy :) Pole samozřejmě v plurálu…

    před 11 lety | reagoval [36] llook
  36. llook http://llook.wz.cz/weblog/ #36

    avatar

    #35 rarousi, Anglictinu nepouzivam ani tak kvuli sdileni, jako spis kvuli tem zajimavym nazvum. Nemam rad, kdyz jsou v nazvu jedny promenny dve slova anglicky a jedno cesky.

    Ta anglictina tam proste sama skace, pri pouzivani cestiny vznikaji nazvy jako $stavSession, $souborProInclude nebo vyescapujRetezec(). Psat identifikatory anglicky mi prijde jednodussi.

    před 11 lety
  37. ph #37

    avatar

    sice je to asi jedno, ale JEN anglicky singular ma svoje kouzlo v tom, ze to nevypada tak blbe jako v cestine (pro nas) a clovek NIKDY neresi, jestli tam nahodou nechybi mnozne cislo (users, entities apod.). Sice to jde zpocatku trochu ztuha, ale je to jen o zvyku. Jak tu nekdo zminil Ruby on Rails – tam jsem s timto pristupem jemne narazil;) [ale da se to obejit modelovanim].

    před 11 lety | reagoval [38] llook
  38. llook http://llook.wz.cz/weblog/ #38

    avatar

    #37 phu, Co plati pro RoR, plati i pro mnou zmineny Cake, protoze to je Rails klon pro PHP. Ale asi ho nakonec nepouziju, nektere detaily se mi nelibi (treba pripona thtml pro sablony). Urcite se ale inspiruju, treba uz ta implementace Active Record pattern, to je proste bezva.

    před 11 lety
  39. johno http://johno.jsmf.net/ #39

    avatar

    ActiveRecord som mal implementovaný (bez relácií) a potom som zistil, že to až také super to nie je. Miešajú sa tam doménové objekty s perzistenciou. Na nejaké malé veci je to paráda, ale teraz mám rozrobenú trochu lepšiu verziu.

    Malá ukážka:

    $finder = new Finder('Article');
    $finder->mustEqual('author', 'johno');
    $articles = $finder->findAll();

    alebo

    $article = new Article();
    $article->author = 'johno';
    $article->title = 'Hello world';
    $article->body = 'and Universe!';
    $article->created = Time::now();
    
    $torpid = Torpid::instance();
    $torpid->save($article); // insert
    
    $article->body = 'Bye!';
    $torpid->save($article); // update
    před 11 lety | reagoval [54] Matej Pivoluska
  40. Radek Hulán http://hulan.cz #40

    $lines = array(...);
    foreach ($lines as $line) {
    ...
    }
    před 11 lety | reagoval [49] Jirka Pech
  41. martin http://www.prales.cz #41

    #19 Davide Grudle, mno, robil som svojho casu vo firme, kde nazyvali tabulky nejak takto TXXXYYYYYY (napr. T001000001), kde XXX bol myslim kod subsystemu a YYYYYY index tabulky v nom. a cudzie kluce vyzerali nejak takto TXXXYYYYYY_ZZ, kde ZZ bol index cudzeho kluca do tabulky TXXXYYYYYY z aktualnej tabulky. no a kedze v priemernom systeme bolo tak 50 tabuliek, mali sme k tomu asi dvojstrankovy dokument mapujuci tieto kody na logicke nazvy… dobry sposob, ako si zapratat cas mozgu blbostami.

    inac ja pouzivam anglicky singular (nepaci sa mi moc miesat slovencinu resp. cestinu v nazvoch s anglictinou v prikazoch jazyka – a to jak v kode, tak v sql). a ak sa nemylim, tak fyzicke nazvy tabuliek by mali byt v singulari a logicke v plurali. aspon tak som to myslim svojho casu cital (ak sa nemylim, mozno je to naopak).

    před 11 lety | reagoval [47] dENIS
  42. Milan http://milan.pc.cz #42

    Většinou plurál a česky. Funkce používám taky česky, protože se mi pak lépe orientuje v tom, co je moje funkce a co funkce daného progromavacího jazyka… i když uznávám, že to to není nejlepší přístup.

    před 11 lety
  43. mila http://hadanky.chytrak.cz #43

    Česky.
    Nemusím přemýšlet, jak se to a ono řekne anglicky, a nemusím řešit, abych nepoužil náhodou nějaké klíčové slovo.

    před 11 lety
  44. Štěpán Svoboda #44

    avatar

    Tak mě napadlo: Jak nazýváte sloupec v tabulce, který obsahuje první odstavec nebo chcete-li upoutávku na článek?

    před 11 lety | reagoval [45] David Grudl
  45. David Grudl http://davidgrudl.com #45

    avatar

    #44 Štěpáne Svobodo, asi by se hodilo perex

    před 11 lety
  46. Michael Le #46

    Anglický jazyk – protože je český ,nehezký' bez diakritiky.

    • je univerzální a kompatibilní.
    • nemá téměř žádné problémy s kódováním.
    • je jazykem mnoha spisovatelů = je smyslný.
    • je jednoduchý.
    • je profesionální.

    Singulár a plurál dle logiky → u tabulek a sloupců většinou pl., u proměnných sg. a u polí pl.

    před 11 lety
  47. dENIS #47

    #41 martine, Trochu z jiné oblasti: tchán dělá logistickou studii skladu jedné velké známé společnosti, a tam se na nějaké kódy regálových sekcí vyprdli. Jedna část se jmenuje hypermarket plzeň, další tesco ostrava atd. Asi přišli na to, že je jednodušší říct (a hlavně si zapamatovat), že kondenzátory patří do hypermarketu plzeň, než na pozici A27U.

    před 11 lety
  48. cortez #48

    avatar

    anglický plurál :))

    před 11 lety
  49. Jirka Pech http://hq.cz/ #49

    #40 Radku Huláne, Charming. This is how the poet writes PHP. :-) Also see <a href="http://sarahk.pcpropertymanager.com/blog/php-poetry/87/" title="PHP Poetry">this one.

    před 11 lety
  50. Alex http://www.cheese.cz #50

    Vždy anglický singulár. Je to nemoc. Nemohu se toho zbavit. :)

    před 11 lety
  51. SQi http://strzibny.name #51

    avatar

    #29 Arthure Dente, Tak to jsme na tom zdřejmě stejně! A řekl bych že stejně blbě!

    před 11 lety
  52. mIREK #52

    avatar
    • U db tabulek používám anglický singulár.
    • U polí anglický plurál.
    • U tříd anglický singulár
    • U funkcí a metod podle toho z čím operují…

    Jinak zhlediska syntaxe se snažím psát stylem „fistWord“ , ale dříve jsem psal „fist_word“…
    Ovšem v SQL a nazvech tabulek zůstavám u „first_word“ doposud…

    před 11 lety
  53. Lokutus #53

    Já jsem pracoval ve firmě, kde jsme měli zakázky výhradně z Rakouska a Německa. Zhusta se jednalo o redesign starších aplikací. Němci a Rakušáci jsou prasata, co se psaní kódu týče. Ovšem názvy, konvence, nebo komentáře – to je skutečná lahůdka. Všechno v němčině. Od té doby používám na všechno angličtinu. Co kdyby za pár let dostal na přepracování mojí aplikaci třeba nějaký ukrajinec.

    Jinak se snažím všude používat singulár. Je to jednodušší a přehlednější.

    před 11 lety
  54. Matej Pivoluska http://pivoluska.blog.sme.sk/ #54

    #39 johno,
    O tom, na co je vhodne pouzit ActiveRecord a ine navrhove vzory pekne pojednava knizka Patterns of Enterprise Application Architecture od Martina Fowlera

    Bolo to zaujimave citanie.

    Ad jazyk. Anglictina? Cestina? Slovencina? Stretol som sa s nazorom, ze oficialny kod by mal byt po anglicky. A len take osobne bastle mozu byt aj v materinskom jazyku. Chyba lavky. Jeden by neveril, kolko lokalnych bastlov od vsakovakych flamskych a norskych programatorov sa v dosledku nestihania dokaze „zoficialnit“. A ked sa Vam po par rokoch dostane taky kod do ruky, lebo v nom treba narychlo nieco pomenit, to je len exkurzia do neznama!

    před 11 lety
  55. Ota #55

    Docela dobré rady (i k těm plurálům) jsou na http://www.strauss.za.com/…ode_std.html :-)

    před 11 lety
  56. yossarian #56

    avatar

    jak se mi to hodi :)

    před 11 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.