Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[postgres] wielkie litery w nazwach

147 views
Skip to first unread message

paulina

unread,
Oct 2, 2010, 1:20:47 PM10/2/10
to
jakie mogą mnie czekać niespodzianki, jeżeli w nazwach tabel i pól mam wielkie
litery? gdzieś wyczytałam, że nie jest to zalecane (wielkie litery). w moim
przypadku jest to pozoztałość z migracji bazy z Accessa

Aplikacja dopiero się będzie tworzyła więc mam jeszcze szanse na podmianę na
małe litery (co prawda ponad 70 tabel). I czy naprawdę wielkie litery w pg to
taki problem?

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Łukasz Dudek

unread,
Oct 3, 2010, 4:07:36 AM10/3/10
to
Dnia 2010-10-02, o godz. 19:20:47
"paulina" <paolamari...@poczta.onet.pl> napisał(a):

> jakie mogą mnie czekać niespodzianki, jeżeli w nazwach tabel i pól
> mam wielkie litery? gdzieś wyczytałam, że nie jest to zalecane
> (wielkie litery). w moim przypadku jest to pozoztałość z migracji
> bazy z Accessa

Duze litery w nazwach to rozszerzenie postgresa i moze sie zdarzyc ze
narzedzie firmy trzeciej nie bedzie sie potrafiło z taką bazą
porozumieć.
Standard przewiduje nazwy małym, duze litery sa przerabiane na male,
wiec PAULINA=Paulina=PaUlInA jest tożsame z nazwą tabeli/kolumny
paulina . Jednak w pg jesli obudujesz nazwe ciapkami "" oznaczaja 3
różne nazwy więc "PAULINA"!="Paulina"!="PaUlInA".
Wprowadza to sporo zamętu w kodzie i utrudnia migracje na cos innego
poza tym takie nazwy mogą się mylić.


>
> Aplikacja dopiero się będzie tworzyła więc mam jeszcze szanse na
> podmianę na małe litery (co prawda ponad 70 tabel). I czy naprawdę
> wielkie litery w pg to taki problem?
>

Zależy.

Jerzy

unread,
Oct 3, 2010, 5:01:42 AM10/3/10
to
Jako przykład podam że też lubiłem stosować nazwę załóżmy TaBela ale po
tym jak się przejechałem na różnych ORMach które np. miały problem z
sekwencjami w takich tabelach już wolę co najwyżej ta_bela.

hubert depesz lubaczewski

unread,
Oct 3, 2010, 4:30:57 PM10/3/10
to
On 2010-10-02, paulina <paolamari...@poczta.onet.pl> wrote:
> jakie mogą mnie czekać niespodzianki, jeżeli w nazwach tabel i pól mam wielkie
> litery? gdzieś wyczytałam, że nie jest to zalecane (wielkie litery). w moim
> przypadku jest to pozoztałość z migracji bazy z Accessa
>
> Aplikacja dopiero się będzie tworzyła więc mam jeszcze szanse na podmianę na
> małe litery (co prawda ponad 70 tabel). I czy naprawdę wielkie litery w pg to
> taki problem?

to nie jest problem dla pg - to jest problem interfejsów - np. tego
najgorszego czyli ludzi.

załóżmy, że zrobiłaś:

create table "People" ( "ID" serial, "Name" text).

select:

select Name from People

nie zadziała, bo (podobnie zgodnie ze standardem sql, ale ja nie
czytałem, więc nie oceniam), jest robiony "case folding" i zapytanie
jest wykonywane jako:
select name from people;

a tabeli tabeli i takiego pola nie masz.

ergo - jak zrobisz "quotowane" nazwy (bo zawierają wielkie litery, albo
coś innego dziwnego) to *zawsze* musisz potem quotować.

depesz

--
Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/
jid/gtalk: dep...@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007

paulina

unread,
Oct 4, 2010, 2:29:02 PM10/4/10
to
> On 2010-10-02, paulina <paolamari...@poczta.onet.pl> wrote:
> > jakie mogÄ mnie czekaÄ niespodzianki, jeĹźeli w nazwach tabel i pĂłl mam
wielkie
> > litery? gdzieĹ wyczytaĹ am, Ĺźe nie jest to zalecane (wielkie litery). w
moim
> > przypadku jest to pozoztaĹ oĹ Ä z migracji bazy z Accessa
> >
> > Aplikacja dopiero siÄ bÄ dzie tworzyĹ a wiÄ c mam jeszcze szanse na
podmianÄ na
> > maĹ e litery (co prawda ponad 70 tabel). I czy naprawdÄ wielkie litery w
pg to
> > taki problem?
>
> to nie jest problem dla pg - to jest problem interfejsĂłw - np. tego
> najgorszego czyli ludzi.
>
> zaŠóşmy, şe zrobiŠaŠ:

>
> create table "People" ( "ID" serial, "Name" text).
>
> select:
>
> select Name from People
>
> nie zadziaĹ a, bo (podobnie zgodnie ze standardem sql, ale ja nie
> czytaĹ em, wiÄ c nie oceniam), jest robiony "case folding" i zapytanie

> jest wykonywane jako:
> select name from people;
>
> a tabeli tabeli i takiego pola nie masz.
>
> ergo - jak zrobisz "quotowane" nazwy (bo zawierajÄ wielkie litery, albo
> coĹ innego dziwnego) to *zawsze* musisz potem quotowaÄ .
>
> depesz
>

kiepsko :-(,
szkoda tylko, że nie zwróciłam na to uwagi kilka lat temu a zauważyłam dopiero
przy próbie migracji z accessa - i na początku nie mogłam zrozumieć co robię
nie tak wpisując SQL z palca. Ale też widziałam te "" więc załozyłam że tak
musi być w pg (tym bardziej że EMS SQL Manager wszystko dla bezpieczeństwa
wrzuca w te "", nawet nazwy z małych liter)

Jeżeli problem leży w aplikacjach zewnętrznych to chyba jednak pozostanę przy
nazwach Tabel1.Pole1. Tym bardziej że aplikacje napisze się raz i można nad
tym zapanowac mając swiadomość gdzie tkwi problem


Dzięki za info
PS. Szkoda, że w ksiąkach tego nie piszą :-)

0 new messages