Pytam o to z ciekawości. Zasadniczo moje pytanie brzmi, kiedy masz bazę danych, która potrzebuje wpisu wiersza, aby mieć rzeczy, które działają jak flagi, jaka jest najlepsza praktyka? Dobrym tego przykładem mogą być odznaki przepełnienia stosu lub pole systemu operacyjnego w bugzilli. Dla danego wpisu można ustawić dowolny podzbiór flag.Flagi w wierszach bazy danych, najlepsze praktyki
Zwykle robię c i C++ pracy, więc moją reakcją jest użycie niepodpisanego pola liczby całkowitej jako zestawu bitów, które można odwrócić ... Ale wiem, że nie jest to dobre rozwiązanie z kilku powodów. Najbardziej oczywistym z nich jest skalowalność, nie będzie twardego górnego limitu na ile flag mogę mieć.
Mogę również wymyślić kilka innych rozwiązań, które będą lepiej skalowane, ale będą miały problemy z wydajnością, ponieważ wymagają wielu wyborów, aby uzyskać wszystkie informacje.
Co to jest "właściwy" sposób na zrobienie tego?
Po prostu ostrzeżenie na niepodpisanej masce. Jeśli musisz pisać zapytania filtrujące wiersze, w których ustawiony jest określony bit, twoja wydajność ucierpi, kiedy liczba wierszy stanie się duża, ponieważ logiczne i/lub operacje w których klauzule nie mogą efektywnie korzystać z indeksów. – JohnFx