Używanie jednej kolumny do wszystkiego, a następnie używanie liczb ujemnych dla debetów lub kredytów nie działa, jak odkryłeś. Wartości księgowe nie są skalarami — są to wektory, które zawierają wyliczenie (obciążenie lub kredyt) i stałą liczbę dziesiętną (która może być dodatnia lub ujemna).
Każda transakcja księgowa musi zawierać równą liczbę obciążeń i uznań. Jeśli tak nie jest, nie jest to prawidłowa transakcja.
Podobnie saldo konta jest również tego samego rodzaju wektorem. W dowolnym momencie łączne obciążenia i łączne kredyty na wszystkich rachunkach w systemie księgowym muszą być sobie równe, w przeciwnym razie coś się popsuło.
Innym sposobem patrzenia na to jest myślenie o wartości księgowej jako liczbie zespolonej, w której obciążenia są rzeczywiste, a kredyty są urojone. Oznacza to, że 4 debety + 3 kredyty =4 + 3i. To sprawia, że jest oczywiste, że nie możesz uprościj to jeszcze bardziej, zwijając urojony składnik w ujemny składnik rzeczywisty -- to nie jest ta sama oś liczbowa. Byłoby to to samo, co twierdzenie, że 4 + 3i =4 - 3. Niepoprawna matematyka.
Gdyby baza danych mogła przechowywać liczby zespolone natywnie, to liczby zespolone byłyby właściwie dobrym sposobem przechowywania danych księgowych, prawdopodobnie wyjaśniłyby wiele zamieszania, jakie zwykle mają programiści na temat rachunkowości, i prowadziłyby do wielu interesujących właściwości. Na przykład zrównoważona transakcja miałaby zawsze kąt fazowy 45 stopni, podobnie jak zrównoważony zestaw kont. Jednak większość baz danych wymaga rozłożenia liczby zespolonej na jej rzeczywiste i urojone terminy przed przechowywaniem i przechowywania tych terminów w różnych kolumnach -- w świecie rachunkowości nazwy tych dwóch kolumn to odpowiednio „debety” i „kredyty”.
P.S.:Zdaję sobie sprawę, że niektórzy używają ujemnych wartości w przypadku kredytów i dodatnich w przypadku debetów, ale wymaga to dużej staranności i jest kruche. Musisz śledzić normalne saldo dowolnego konta za każdym razem, gdy go dotykasz – na przykład, ponieważ konto aktywów ma normalne saldo debetowe, możesz użyć liczby dodatniej, aby je zwiększyć. Ale konto pasywów ma ujemne saldo normalne, więc wzrost wartości tego konta jest liczbą ujemną. Nie możesz zsumować tych dwóch wartości w dowolnym momencie — to nie to samo. Debet to coś, co masz, a kredyt to coś, co jesteś winien. Umieszczenie obu w tej samej kolumnie w tabeli bazy danych brzydko pachnie.