Będę jak wrócę. Albo ciut później.
Co, kurwa, kierowało projektantem bazy, by ustalić, że wartość klucza obcego równa -1 oznacza, że klucz wskazuje na brak rekordu.
Dlaczego, kurwa, nie zwykłe null???
null
Bo pewnie w wyższych warstwach kodu nie umiał obsługiwać null, a porównanie klucz>=0 już było dla niego proste... ;)
Dlatego, że dla zwykłego NULLa można by wykorzystać mechanizmy więzów integralności wbudowanych w bazę (FOREIGN KEY), a on nie chciał iść na łatwiznę? ;-)
Właśnie mnie koledzy przekonują, że to dlatego, że optymalizator zapytań w postgresie ma mniejsze możliwości optymalizacji. (cokolwiek to znaczy)
Gadanie, można założyć indeks funkcyjny na (klucz=NULL) jeśli komuś bardzo jest taki potrzebny.
no i bardzo ważne! można pisać: <code>select * from a,b where a.fk=b.id</code> zamiast jakichś outer joinów
A co ma piernik do wiatraka? NULL nie połączy się z żadnym ID, nawet z innym NULL-em!
ejdzej: a skąd mam wiedzieć?????
Bo pewnie w wyższych warstwach kodu nie umiał obsługiwać null, a porównanie klucz>=0 już było dla niego proste... ;)
Dlatego, że dla zwykłego NULLa można by wykorzystać mechanizmy więzów integralności wbudowanych w bazę (FOREIGN KEY), a on nie chciał iść na łatwiznę? ;-)
Właśnie mnie koledzy przekonują, że to dlatego, że optymalizator zapytań w postgresie ma mniejsze możliwości optymalizacji.
(cokolwiek to znaczy)
Gadanie, można założyć indeks funkcyjny na (klucz=NULL) jeśli komuś bardzo jest taki potrzebny.
no i bardzo ważne! można pisać:
<code>select * from a,b where a.fk=b.id</code>
zamiast jakichś outer joinów
A co ma piernik do wiatraka? NULL nie połączy się z żadnym ID, nawet z innym NULL-em!
ejdzej: a skąd mam wiedzieć?????