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
Dero #1
Plurál, prosím. Ale bohužel nejsem programátor a silně pochybuji, že by se našel někdo, kdo by mne ctil.
Rene #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 ;)
Bochi #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?
nebko #4
Budu stručný: u všeho plurál anglicky :)
e-Jirka #5
Plural cesky. A cizi klice napr. pouze prvnimi 3 pismeny z puvodniho nazvu 🙂
soundake #6
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“ ;)
Petr S #7
Když bych kodil v C++, použil bych anglické pojmenování. Ale např. v tabulce v MySQL mam vse cesky (plurál).
David Majda #8
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ě.
Jirka #9
Anglicky a singulár. Nazvy tabulek doplnuji prefixem urcujicim modul aplikace:
core_setting
,shop_order
,shop_customer
atd.peCan #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:-)
Pavel Prostřední #11
Taky budu hlasovat! :)
Plurál anglicky
johno #12
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
,…johno #13
No a tie polia tiež samozrejme anglicky a v plurále.
carnero #14
cesky a plurál, většinou. Komentáře uživatelů jsou v tabulce na_smazani, což není ani jedno.
Pin007 #15
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 🙂
Pin007 #16
na_smazani vede… kam se hrabe abeceda 😁
johno #17
#15 Pin007, A nevolá sa ten tvoj kolega náhodou priezviskom Obfuskátor?
Brano #18
Prikláňam sa k #8 David Majda
David Grudl #19
#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řePin007 #20
#17 johno, to sice ne, ale ma k nemu blizko ;)
#19 Davide Grudle, padam ze zidle 😁
carnero #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 :)
mafo #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%!;)
Adam Hošek #23
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 :).
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.
David Grudl #25
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.
llook #26
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.
David Grudl #27
#26 llooku, Dildo? jojo, to je fajn 😁
charlie #28
anglicky a plural.. a btw dobrej obrazek co doplnuje spot.. synthesia.. ach, to byly casy..:)
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
Solvina #30
Anglictina bez debaty. Proc jednotne cislo? Inu staci si precist neco o datovem modelovani (odborne zdroje).
maarlin #31
Vždycky cesky a vetsinou plural.
Ladislav Martinčík #32
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!
Štěpán Svoboda #33
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</i>
)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.
Jan Havrda #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.
rarous #35
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…
llook #36
#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
nebovyescapujRetezec()
. Psat identifikatory anglicky mi prijde jednodussi.ph #37
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].
llook #38
#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.
johno #39
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:
alebo
Radek Hulán #40
martin #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).
Milan #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.
mila #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.
Štěpán Svoboda #44
Tak mě napadlo: Jak nazýváte sloupec v tabulce, který obsahuje první odstavec nebo chcete-li upoutávku na článek?
David Grudl #45
#44 Štěpáne Svobodo, asi by se hodilo perex
Michael Le #46
Anglický jazyk – protože je český ,nehezký' bez diakritiky.
Singulár a plurál dle logiky → u tabulek a sloupců většinou pl., u proměnných sg. a u polí pl.
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.
cortez #48
anglický plurál :))
Jirka Pech #49
#40 Radku Huláne, Charming. This is how the poet writes PHP. 🙂 Also see
<a href="https://web.archive.org/web/20051104233959/http://sarahk.pcpropertymanager.com:80/blog/php-poetry/87/" title="PHP Poetry">
this one</a>
.Alex #50
Vždy anglický singulár. Je to nemoc. Nemohu se toho zbavit. :)
SQi #51
#29 Arthure Dente, Tak to jsme na tom zdřejmě stejně! A řekl bych že stejně blbě!
mIREK #52
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…
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ší.
Matej Pivoluska #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!
Ota #55
Docela dobré rady (i k těm plurálům) jsou na https://web.archive.org/…ode_std.html 🙂
yossarian #56
jak se mi to hodi :)
Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.