Imena kolona
Jedno fino anketno pitanje, bez ankete :)
Kako imenujete kolone u bazi? Da li koristite prefiks kod imena kolone: (user_id, user_username, user_password ... za tabelu user) ili jednostavno ( id, username, password jel se podrazumjeva tabela)... Iskreno koristim prefiks posto nekad davno sam se tako fino izjebo sa velikim SQL izrazima i gomilom alias-a, ali evo sad bas gledam uglavnom ljudi koriste bez prefiksa... Da cujem kakva su cija iskustva. |
user_id, username, password...
login_id, user_id, date... ;) |
Primarne ključeve, bez obzira da li su u originalnoj tabeli ili kao foreign ključ u nekoj drugoj prefiksujem sa ID ili ID_
ID_ImeTabele tj. IDUser, IDCountry, IDState Ostalo što "normalnije". |
А кад смо већ код тога, да ли имена колона пишете све малим словима или користите мешано? Да ли одвајате две речи доњом цртом или на неки други начин?
|
primarni kljuc id, strani kljucevi <ime tabele u jednini>_id, polja bez prefixa, imena tabela uvek u mnozini, na engleskom, i sve sa malim slovima...
u php/mysql svetu to je manje vise standard, a i u kompleksnijim upitima uvek koristim ime_tabele.ime_polja, pa mi je zato besmisleno da pisem prefixe. Umesto imena tabele obicno stavim alias, da se ne bi mnogo pisalo, jer mi je uzasno nepregledno da gledam kilometarske nazive u upitima, a i na bazi obicno radim iz konzole i onda treba to sve otkucati :) |
Rails (tačnije, ActiveRecord) podrazumeva da primarni ključ zove id, a spoljni model_id (npr. user_id, ako odgovara slogu u tabeli users). Koriste se samo mala slova i anderskorovi.
http://en.wikipedia.org/wiki/Convent..._configuration Citat:
|
id za primarne kljuceve, ime_tabele_id za veze
imena tabela u entitetu (zasto bih uvek imao 's' na kraju imena?) prefikse sam koristio ranije kada su na hostinzima omogucavali uglavnom po jednu bazu. Vise nema smisla, osim ukoliko grupises tabele. |
primarni id, ostalo jednina, mala slova, donja_crta, engleski uglavnom
|
isto kao i Igor/Ivan
|
ukoliko u svakoj tabeli koristiš id kao oznaku primarnog ključa a ne npr user_id a pri tom razvijaš bazu u relacionom formatu neće moći da koristiš skraćeni oblik join => SELECT * FROM user INNER JOIN user_telefon USING (user_id).
MySQL preporučuje ne korišćenje Java stila tip userID i slično. Framework-ci koriste oblik gde se kod svake table primarni ključ obeležava ID ali pogledaj to sa logičke strane, ako svaki ID treba biti unique onda je i logično da ti svaki primarni ključ ima jedinstven naziv. |
to stoji, ali ja USING prakticno nikad ne koristim, sto je naravno cisto stvar navike, nista tome ne fali... navikao sam da kucam tbl1, tbl2 za inner join...
IMHO glavna fora sa time da se primarni kljuc uvek zove isto u svakoj tabeli je sto to znatno pojednostavljuje biblioteke za rad sa bazom (CRUD operacije sve zavise od PK) i ubrzava rad sa bazom rucno (manje se kuca). Takodje imas neke situacije kao npr. sharding, gde je mnoooogo lakse ako su ti nazivi polja nezavisni od imena tabela, jer ih imas N identicnih primeraka... BTW, nedavno sam radio sa bazom na ceskom, gde su se PK zvali recimo exkluzivita_ftpUcetID_archivID_id, i ajd ti to otkucaj kako treba... |
Citat:
|
Ja uvek koristim troslovnu skracenicu: usr_id, usr_name, usr_address, itd.. iz cisto prakticnih razloga (pogotovu kod velikog broja tabela gde imas dosta polja koja su slicna + mnogo dugackih sql upita).
A i ORM ne pravi problem oko toga, posto se bazira na primarnom kljucu u tabeli. |
Citat:
Što se mene tiče, ja obično koristim prefikse za polja po imenu tabele, ali ako nisu duži od 5 karaktera. Recimo za tabelu "articles" obično koristim article_id, article_title ... ili skraćeno art_id, art_title. To je zbog toga što se dešava da kada imaš join-ove, polja koja se identično zovu mogu da prepiši jedno drugo. Ako imaš recimo tabele news i articles i u obe imaš polje "title" onda će JOIN da ostavi samo 1 title u niz koji dobiješ a i pored toga u kodu ne znaš ni koji title treba da ispišeš. Mislim da je bolje da stoji: PHP kôd:
PHP kôd:
|
Citat:
Jes' da stoji logika "što će ti S uvjek na kraju imena tabele" ali nekako mi je čitljivije... Jedninu doživljavam kao overkill u normalizaciji :) Inače, ne znam zašto, ali mi jako bode oči kad ljudi kolonama daju imena tipa id_user umjesto user_id :1039: Posebno kad je tabela sa više foreign ključeva pa pa naslažu id_ovo, id_ono... |
Sto ljud sto cudi, dvjesta zena ... :)
Meni taj prefiks izgleda sugavo i suvisno ali jednostavno je praktican, pa sam htijo da cujem sta jos kolege programiri kazu. Aj uzdravlje, i pomalo sa tim imenima kolona :) |
Citat:
SELECT tbl1.*, tbl2.id AS tbl2_id FROM ... ali zaista je u tom slucaju preglednije ako imaju prefix |
^ Pa alias ti dođe kao prefiks, što se čitljivosti tiče dođe na isto. A barem postgres se buni kad imaš ista imena a ne navedeš alias.
Edit: Mislim na alias tabele, ne alias kolone. |
Da li možeš to malo da mi pojasniš kako je alias tabele isto što i prefiks kolone?
|
Vreme je GMT +2. Trenutno vreme je 18:05. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.