Dobrze nazwana klasa, dobrze nazwana zmienna, dobrze nazwana tabela to połowa sukcesu w naszym zawodzie. Czytelny kod zdradzający już na pierwszy rzut oka intencje autora to skarb. Nie trzeba się głowić OCB, WTF, ot czytamy i wiemy co to to robić powinno. Jeśli jeszcze to robi to po prostu miodzik.
Dobra nazwa to podstawa!
No i taka sytuacja, nazwa tabeli w bazie dostała nie bardzo czytelną nazwę – autor użył skrótów bo baza FireBird pozwala na zaledwie 31 znaków w nazwie tabeli i za bardzo nawet nie można tego zmienić (http://stackoverflow.com/questions/20155517/is-it-possible-to-extend-firebird-table-name-length). Trochę później autor stwierdził, że trzeba zmienić tą nazwę na bardziej czytelną bo nic z niej nie wiadomo – nie wiedział jeszcze o nadchodzącej masakrze ale nie uprzedzajmy faktów.
Zonk… nie da się zmienić nazwy tabeli. Ot FireBird nie przewiduje takiej możliwości…. serio w “bazie danych” FireBird nie ma możliwości zmiany nazwy tabeli (http://www.firebirdfaq.org/faq363/). FB DBNazi mówił, że nazwa jest ok i żeby ją zostawić ale nie, biedak się uparł. Tabelka miała kilka zależności więc trzeba było poprawić skrypty, założyć nową tabelkę, tu poprzepinać tam pogłaskać, zabawa po pachy – idealnie na piątkowy poranek – tak przed weekendem. Jeszcze tylko usunąć starą tabelkę…..
…. taa…. kto by się spodziewał, że w FireBird nie bardzo można usunąć tabelkę jeśli ktoś jest podłączony do bazy. To nie ma znaczenia, że nikt nie używa tej tabeli, ot jest ktokolwiek podłączony to nie usuniesz nic bracie*. Baza testowo/developerska więc spoko, ubijemy co tam wisi, tylko że gdzieś 2 apache korzystały z tej bazy, jakieś 2-3 inne usługi gdzieś też posłusznie połączone, ja dziubiąwszy dodatek do outlooka również pośrednio cośtam ssałem z tej bazy. A… i jeszcze jeden dev pojechał na wywczas a na komputerze chyba zostawił aktywne połączenie IBExpertem (takie SQL Managemenet Studio tylko że płatne, brzydkie i wydające dźwięki – serio). Suma sumarum nasz biedny dev co to nazwę chciał mieć ładną, spowodował że prawie cały dział musiał zawiesić pracę a i kilku wdrożeniowców do pomocy przybiegło. Jak się wszyscy odłączyli a i on sam zrestartował IBExperta w końcu dostąpił zaszczytu usunięcia tabeli. Gromkie oklaski – serio klaskaliśmy temu kozakowi że dokonał tego – i już spokojnie możemy wszyscy ruszyć dalej pchać interaktorami encje w otchłań wszechmocnego FireBird-a.
*) nieprawdą jest że jeśli są podłączeni ludkowie to nie usuniesz nic. FireBird to taka “baza danych”, w której da się usunąć plik bazy w czasie pracy i serwer nawet nie zająknie. W wszystko dalej będzie ładnie działało w pamięci – ale już 1 tabelki to nieeeeee bo bezpieczeństwo bo acid bo transakcje czy co tam jeszcze.
Jeszcze mało?
select a,b,c
from whatever
where 1 = 0
Spowoduje oczywiście, przeskanowanie całej tabeli!!! Wszak dla każdej krotki trzeba sprawdzić czy aby na pewno warunek w where jest prawdziwy czy fałszywy.
Serio mało jeszcze?
No to podobno ze statystykami jest jakoś tak, że baza lepiej działa jak się zrobi backup i restore – ot tak profilaktycznie.
Jeśli chcesz skorzystać z tej super “bazy danych” to warto nadmienić, że FireBird jest darmowy – jeśli nie liczyć ogromu pracy potrzebnej przez wymienione powyżej kwiatuszki a to podobno nie wszystkie cuda jakie ofertuje to coś.