Edit: Przy czym .. jedna z zasad normalizacji mówi, że nie tworzymy kolumn z danymi które można wyliczyć na podstawie innych kolumn ... także po co chcesz wrzucać te kolumny właściwie ?
Permanentnie łamię tę zasadą ponieważ daje więcej szkody niż pożytku.
A wymyślił ją pewnie "autorytet", ale na pewno nie praktyk.
Wyprzedzając pytanie, dlaczego?
Z puntu widzenia bazy danych - jak poradzić sobie z faktem, że obliczenia niektórych wartości zależą od stanu obiektu i na poziomie każdego wierszą mogą być różne?
Albo - zmienił się algorytm obliczania, a logika ma dotyczyć rekordów "od teraz ", ale dla danych historycznych ma być bez zmian.
I co teraz?
Stosować ifologię w polach kalkulowanych/procedurach/whatever?
To upierdliwe i trudne do utrzymywania, kłopotu z tym sporo, a zysk żaden.
Bo niby oszczędzę 4 bajty na wierszu?
Być może, ale odczyt będzie zawsze szybszy niż obliczanie.
Moim zdaniem utrwalanie takich informacji jest po prostu lepszym pomysłem.
A ta niby "dobra rada" pochodzi z czasów, kiedy "640 KiB pamięci wystarczy każdemu"...
Podobnie jest zresztą z utrzymywaniem logiki w bazie danych, ale to temat nie taki oczywisty i nie ma rozwiązań zero-jedynkowych.