Mam aplikację internetową, która powiadamia użytkowników o aktywności na stronie za pośrednictwem poczty elektronicznej. Użytkownicy mogą wybrać rodzaje powiadomień, które chcą otrzymywać. Jak dotąd istnieje około 10 różnych opcji (każda z nich jest prawdziwa/fałszywa).Najlepszy sposób na przechowywanie wielu flag w bazie danych
Aktualnie przechowuję to w jednym polu varchar jako 0 lub 1 oddzielone przecinkami. Na przykład: 1,0,0,0,1,1,1,1,0,0
Działa to, ale trudno jest dodać nowe flagi powiadomień i śledzić, która flaga należy do którego powiadomienia. Czy istnieje odpowiedni standard do robienia tego? Myślałem o dodaniu kolejnej tabeli z kolumną dla każdego typu powiadomienia. Następnie mogę dodać nowe kolumny, jeśli potrzebuję, ale nie jestem pewien, jak jest to skuteczne.
Z góry dzięki!
Wydaje się, że to zdecydowanie najlepsze rozwiązanie IMO. Przechowywanie ich wszystkich w jednej kolumnie nie jest bardzo rozszerzalne. Przechowywanie ich w polach boolowych w tabeli oznacza, że musisz dodać nowe pole za każdym razem, gdy pojawi się nowy typ powiadomienia. – Craig
To działałoby dobrze, szczególnie jeśli chcesz móc skanować typy powiadomień. – BCS
Normalizacja jest świetna dla rozszerzalności, ale ma niewielki wpływ na wydajność. – stephenbayer