konto usunięte

Temat: Boolean

Mam pytanie odnośnie typu boolean w SQL SERVER 2008. Type ten nie istnieje w domyślnym zestawie typów zmiennych.Mam na myśli sytuacje kiedy np. chcę ustawić kolumnę typu boolean aby zweryfikować czy dokumenty zostały dodane czy nie. Czy jest sposób ,aby obejść ten problem?

konto usunięte

Temat: Boolean

Edyta Kucharska:
Mam pytanie odnośnie typu boolean w SQL SERVER 2008. Type ten nie istnieje w domyślnym zestawie typów zmiennych.Mam na myśli sytuacje kiedy np. chcę ustawić kolumnę typu boolean aby zweryfikować czy dokumenty zostały dodane czy nie. Czy jest sposób ,aby obejść ten problem?

typ bit
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Boolean

Na ogol uzywa sie bit, tinyint,smallint, int.

http://msdn.microsoft.com/en-us/library/ms177603.aspx
http://msdn.microsoft.com/en-us/library/ms187745.aspx

ale tak naprawde to mozna uzyc dolownego typu danych, przeciez nie jest istotne co jest w bazie tylko jak aplikacja to interpretuje. Zwykle uzywa sie 1 dla True i 0 dla False, ale rownie dobrze moze to byc T i F albo wrecz 'TRUE' i 'FALSE'.
Adam Woźniak

Adam Woźniak software architect
and developer

Temat: Boolean

Edyta Kucharska:
Mam pytanie odnośnie typu boolean w SQL SERVER 2008. Type ten nie istnieje w domyślnym zestawie typów zmiennych.Mam na myśli sytuacje kiedy np. chcę ustawić kolumnę typu boolean aby zweryfikować czy dokumenty zostały dodane czy nie. Czy jest sposób ,aby obejść ten problem?

Dodam swoje 3 grosze...

Napisałem / pisze kilka aplikacji łączących się do relacyjnych baz danych. Jako warstwę pośredniczącą używam JPA/Hibernate (język Java).
Chcąc zachować przenośność pomiędzy bazami, staram się unikać natywnych typów (takich jak bit).
Zamiast tego uzywam kolumny typu CHAR (lub VARCHAR2(N)), a wartości z takiej kolumny mapuję na javowe enumy (via @Enumerated). Używając enumów, zamiast typu boolean lub stringów, zyskuję większą kontrolę typów i łatwiej (znaczniej) jest nawigować po kodzie skacząc po tych enumach.

Pozdrawiam, Adam Woźniak
Tomasz Radomski

Tomasz Radomski Programista baz
danych,
Statconsulting

Temat: Boolean

Witam,
Zawsze mozna utworzyć nowy typ użytkownika i nawet można go nazwać boolean, a do tego typu zdefiniować wartości jakie moze zawierać
Adam Woźniak

Adam Woźniak software architect
and developer

Temat: Boolean

Tomasz Radomski:
Witam,
Zawsze mozna utworzyć nowy typ użytkownika i nawet można go nazwać boolean, a do tego typu zdefiniować wartości jakie moze zawierać

KISS ;]

Pozdrawiam, Adam Woźniak

PS.
No offense :)Adam Woźniak edytował(a) ten post dnia 08.02.10 o godzinie 22:44

konto usunięte

Temat: Boolean

I to jest bardzo zdrowe podejście pod kątem zgodność , widać, że kolega programuje na bieżąco. Metodyka proponowana przez kolegę jest najlepsza moim zdaniem, po prostu proste, wydajne i kompatybilne rozwiązanie.
Adam Woźniak:
Edyta Kucharska:
Mam pytanie odnośnie typu boolean w SQL SERVER 2008. Type ten nie istnieje w domyślnym zestawie typów zmiennych.Mam na myśli sytuacje kiedy np. chcę ustawić kolumnę typu boolean aby zweryfikować czy dokumenty zostały dodane czy nie. Czy jest sposób ,aby obejść ten problem?

Dodam swoje 3 grosze...

Napisałem / pisze kilka aplikacji łączących się do relacyjnych baz danych. Jako warstwę pośredniczącą używam JPA/Hibernate (język Java).
Chcąc zachować przenośność pomiędzy bazami, staram się unikać natywnych typów (takich jak bit).
Zamiast tego uzywam kolumny typu CHAR (lub VARCHAR2(N)), a wartości z takiej kolumny mapuję na javowe enumy (via @Enumerated). Używając enumów, zamiast typu boolean lub stringów, zyskuję większą kontrolę typów i łatwiej (znaczniej) jest nawigować po kodzie skacząc po tych enumach.

Pozdrawiam, Adam Woźniak
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Boolean

Pozwole sobie przypomniec o dobrych praktykach uzywania "ekonomicznych" typow danych.
Zaprogramuje sobie taki programista aplikacje, ktora pieknie dziala ale za kilka lat backup bazy rozrosnie sie do 100GB i predkosc spadnie do zera BO NIE UZYWAL TYPU BIT! Dziekuje ;)

konto usunięte

Temat: Boolean

Bartosz Ślepowronski:
Pozwole sobie przypomniec o dobrych praktykach uzywania "ekonomicznych" typow danych.
Zaprogramuje sobie taki programista aplikacje, ktora pieknie dziala ale za kilka lat backup bazy rozrosnie sie do 100GB i predkosc spadnie do zera BO NIE UZYWAL TYPU BIT! Dziekuje ;)

o backup ma się martwić DBA a nie programista ;)
Michał Jarosz

Michał Jarosz Frontend Developer &
Team Leader

Temat: Boolean

W których DBMS typ BIT (jeśli istnieje, ewentualnie BOOL) zajmuje istotnie jeden bit?Michał Jarosz edytował(a) ten post dnia 09.02.10 o godzinie 10:17
Paweł K.

Paweł K. Administrator
Systemów
Informatycznych

Temat: Boolean

Przemysław R.:
Bartosz Ślepowronski:
Pozwole sobie przypomniec o dobrych praktykach uzywania "ekonomicznych" typow danych.
Zaprogramuje sobie taki programista aplikacje, ktora pieknie dziala ale za kilka lat backup bazy rozrosnie sie do 100GB i predkosc spadnie do zera BO NIE UZYWAL TYPU BIT! Dziekuje ;)

o backup ma się martwić DBA a nie programista ;)

idąc dalej tym tropem, to obojgu powinno zależeć na przyroście i dostępności bd na późniejszych etapach ...

DBA/programista powinni przemyśleć dobrze strukturę bd oraz rozważyć wszelkie ułatwienia/utrudnienia związane z ich obsługą.

a to już zakrawa na miano PROJEKTU ;)
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

Temat: Boolean

Michał Jarosz:
W których DBMS typ BIT (jeśli istnieje, ewentualnie BOOL) zajmuje istotnie jeden bit?
W MSSQL 1..8 kolumn typu BIT zajmują 1 bajt.

Wracając do tematu pytania na dowolnym typie danych można zrealizować BOOLEAN. Choćby interpretując null jako false i not null jako true.
Ale moim zdaniem BOOLEAN w bazie danych to najmniej użyteczny typ. Zazwyczaj obok pojawi się pole typu tinyint określajace "ilość dokumentów" albo "data najmłodszego dokumentu". Ja w takiej sytuacji traktuję null jako "nie ma dokumentów".
Jeśli w DB masz obok tabelę ze ścieżkami dokumentów to wogóle odpuść sobie składowanie informacji czy są i wyliczaj ją w widoku lub funkcji.Paweł B. edytował(a) ten post dnia 09.02.10 o godzinie 14:40
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Boolean

Paweł B.:
Wracając do tematu pytania na dowolnym typie danych można zrealizować BOOLEAN. Choćby interpretując null jako false i not null jako true.

NULL cechuje brak wartości lub nieistniejąca wartość. Poza tym nie jest typem danych ani nie należy do żadnego typu. Budowanie logiki w oparciu o NULL może zaowocować nieoczekiwanymi rezultatami ;)
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

Temat: Boolean

Łukasz Schabek:
Paweł B.:
Wracając do tematu pytania na dowolnym typie danych można zrealizować BOOLEAN. Choćby interpretując null jako false i not null jako true.

NULL cechuje brak wartości lub nieistniejąca wartość. Poza tym nie jest typem danych ani nie należy do żadnego typu. Budowanie logiki w oparciu o NULL może zaowocować nieoczekiwanymi rezultatami ;)
1. Nie napisałem, że NULL to typ danych.
2. Ignorowanie NULLi w logice aplikacji może zaowocować nieoczekiwanymi rezultatami. Jak w OUTER JOIN zinterpretujesz NULL?
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Boolean

Paweł B.:

1. Nie napisałem, że NULL to typ danych.
2. Ignorowanie NULLi w logice aplikacji może zaowocować nieoczekiwanymi rezultatami. Jak w OUTER JOIN zinterpretujesz NULL?

Napisałeś że "na dowolnym typie danych można zrealizować BOOLEAN. Choćby interpretując null jako false i not null jako true." - można zrozumieć, że mówisz o null jako o typie danych.

Właśnie chodzi mi o nieinterpretowanie NULL w żaden sposób, czy to w klauzuli OUTER JOIN czy przy symulowaniu logiki boolowskiej. NULL to NULL, nie żaden BOOL ;)
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Boolean

Bez przesady, kazdy jezyk posiada fukncje obslugi nulli.

Oraz w kwestii formalnej, null jest stanem logicznym, wiec jak najbardziej mozna w oparciu o niego budowac warunki.
Adam Woźniak

Adam Woźniak software architect
and developer

Temat: Boolean

Bartosz Ślepowronski:
Bez przesady, kazdy jezyk posiada fukncje obslugi nulli.

Oraz w kwestii formalnej, null jest stanem logicznym, wiec jak najbardziej mozna w oparciu o niego budowac warunki.

Ale, tam gdzie to jest możliwe, należy unikać używania NULL-i, szczególnie używania NULL-i jako "stałej".

Nie będę się rozpisywał, bo wszystko jest precyzyjnie opisane tutaj:
"Use NULL for non-existing or missing values. Don't make up a special constant for that."
http://www.orafaq.com/node/1023

Są tam uzaadnienia dlaczego NULL-e nieporęczne są.

Pozdrawiam, Adam Woźniak
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Boolean

Oczywiście że NULL jest stanem logicznym, jednak w logice trójwartościowej a to już różnica którą warto podkreślić.Łukasz Schabek edytował(a) ten post dnia 09.02.10 o godzinie 21:26
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Boolean

Adam Woźniak:
Ale, tam gdzie to jest możliwe, należy unikać używania NULL-i, szczególnie używania NULL-i jako "stałej".

Dlatego pisalem o warunku, w ktorym jesli istnieje mozliwosc wystapienia nulla to trzeba upewnic sie, ze zostanie poprawnie zinterpretowany. I tyle.
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Boolean

Łukasz Schabek:
Oczywiście że NULL jest stanem logicznym, jednak w logice trójwartościowej

Jakbym sie chcial czepiac to bym napisal ze nie, ot tak zeby zobaczyc jak daleko zdryfuje dyskusja :)



Wyślij zaproszenie do