Dane (flagi) binarne w MySQL

Czasami zachodzi potrzeba przechowywania w bazie danych binarnych. Nie mam tu na myśli pól typu BLOB, w których możemy przechowywać np. obrazki lub inne pliki, lecz dość staromodne rozwiązanie, jakim są flagi bitowe. Można stwierdzić, że praktyka ta zaczerpnięta została z języków niskiego poziomu kontaktujących się z elektroniką, gdzie w ten sposób można np. sterować wyjściami urządzeń itp.

Przykład 1: urządzenie posiada 7 diod LED. W bazie danych chcemy przechować informację, które diody mają się świecić.

Przykład 2: mamy kilka założonych z góry funkcji w aplikacji, których nie będziemy rozbudowywać o kolejne elementy: dostęp administracyjny, dostęp tylko do czytania, dostęp do czytania + edycji itp. Chcemy ustawić użytkownikowi uprawnienia do poszczególnych funkcji.

Flagi bitowe pozwalają na przechowywanie różnych informacji w prostej formie.

Wystarczy kolumna w tabeli przechowująca zwykłe dane liczbowe.

Do manipulacji danymi można posłużyć się zapytaniami:

Wstawianie danych:

INSERT INTO table_name(column_name) VALUES( B'1110000');

Wybieranie danych:

SELECT CONV(column_name, 10, 2) FROM table_name;

Funkcja CONV konwertuje dane z liczby o podstawie x do liczby o podstawie y. Parametry:

SELECT CONV(column_name, podstawa z jakiej konwertować, podstawa do jakiej konwertujemy)

Wyszukiwanie danych:

SELECT column_name FROM table_name WHERE column_name & B('1110000');

Przydatny wpis? Postaw mi kawę :)

Dodaj komentarz

avatar
  Subscribe  
Powiadom o