konto usunięte
- 1
- 2
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
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
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
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
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
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
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.
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.
architekt baz danych
/ SQL Developer /BI
Developer
Temat: Boolean
Michał Jarosz:W MSSQL 1..8 kolumn typu BIT zajmują 1 bajt.
W których DBMS typ BIT (jeśli istnieje, ewentualnie BOOL) zajmuje istotnie jeden bit?
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 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.
architekt baz danych
/ SQL Developer /BI
Developer
Temat: Boolean
Łukasz Schabek:1. Nie napisałem, że NULL to typ danych.
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 ;)
2. Ignorowanie NULLi w logice aplikacji może zaowocować nieoczekiwanymi rezultatami. Jak w OUTER JOIN zinterpretujesz NULL?
Ł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
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
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 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
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
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 :)
- 1
- 2