Wpis z mikrobloga

@Kresse: Tylko właśnie nie wiem, czy dublowanie nazw nie byłoby złamaniem którejś z zasad normalizacji. To mnie najbardziej nurtuje i powstrzymuje przed przechowywaniem tego jako stringa. Oprócz typowego przypadku płci planuję też przechowywanie różnych kategorii i specjalizacji.
@RobieInteres: Enuma nie możesz redefiniować w runtime (nie można po prostu wrzucić do tabeli nowej wartości i jej używać), dlatego osobna tabela dla niego praktycznie nie daje żadnych korzyści, a wręcz przeciwnie - komplikuje zapytania, bo musisz robić dodatkowego joina, co jest upierdliwe, zwłaszcza jeśli masz kilka enumów. Jedyną wada EnumType.STRING jest trudniejsza zmiana nazwy poszczególnych wartości, ale z reguły robi się to rzadko.
Poza tym pełna normalizacja nie zawsze jest
@RobieInteres: łap jeszcze takie rozwiązanie, które zapewnia czytelność dla ludzi i nie psuje wydajności: https://stackoverflow.com/a/17409292/2045440 - sprawdzi się dla silników baz, które ogarniają typ ENUM.
Dodanie nowej wartości wymaga modyfikowanie definicji kolumny, ale przy takich opcjach jak płcie nie spodziewałbym się jakiejś ogromnej pracochłonności przy utrzymywaniu tego zbioru ( ͡° ͜ʖ ͡°)
@RobieInteres ja bym zrobił osobną encję płeć, a w niej jedna kolumna string z nazwami płci i ten string może być kluczem podstawowym tabeli płeć, dzięki czemu jak stworzysz relację między nimi to w tabeli użytkowników w bazie będziesz widział od razu płeć zamiast cyferki, a dodatkowo program jest przyszłościowy gdyż za kilkanaście lat będzie pewnie cała masa płci i będzie je można dodawać do bazy, a jak świat zaszaleje to i