Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wybór optymalnego typu danych, W jakim typie najlepiej zamieszczac flagi binarne?
MySQL
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Problem jest taki:

Mam tabelę z kilkoma polami. Większość z tych pól będzie przechowywać informacje tylko ze zbioru dwuelementowego. Niech to będzie: {"T", "N"} ale rownie dobrze moga to być wartości {0, 1} (nie dopuszczam wartości NULL!). Jakie to będa wartości to już małoistotne, gdyż nie będa one uczestniczyły w klauzulach SELECT. To będa informacje tylko dla administratora. I takich pól jest kilka/kilkanaście (co chwile jakieś nowe powstają w projekcie).

I teraz właśnie zasadnicze pytanie: Czy przy tworzeniu tabeli użyć dla kazdej takiej flagi pola typu ENUM i wowczas niech kazde pole zajmuje po 1 bajt. Czy też może użyć typu jednego pola typu SMALLINT i kazda flaga byłaby reprezentowana przez jeden bit na odpowiednim miejscu w tym typie liczbowym, ktory zajmuje 3 bajty (ewentualnie dam większy jezeli flag jeszcze przybędzie).

Jak juz napisałem wcześniej te pola binarne mają po prostu tylko być w tabeli. Nie posłużą one do zapytan warunkowych.
Skrypt PHP jak odbierze rekord przetworzy te pola (albo wyłuska odpowiednie bity z liczby) i wyświetli odpowienie rzeczy na ekranie. Tak to ma działać.

Jak więc radzicie. Czy zaoszczędzić na pojemności tabeli i użyć typu liczbowego czy jednak każda flaga to osobne pole w tabelce? Jakie jest Wasze zdanie? Jaka jest Wasza praktyka? Ja osobiście skłaniam się aby był to typ liczbowy.

Ten post edytował achaja 6.03.2009, 14:19:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Na stronie, którą podałem napisali podobnie:
Cytat
MySQL offers a non-conforming BOOLEAN type. MySQL's BOOLEAN is one of many aliases to its TINYINT(1) type.

To teraz rodzi się pytanie - po co w takim razie w bazach zmienne typu BIT? Bo tak na prawdę są to zmienne typu boolean: true/false.

[edit]
już wiem:
Cytat
MySQL has a BIT type which may be interesting for people with enormous amounts of boolean-type data.


Ten post edytował sowiq 6.03.2009, 15:48:43
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 14:09