EVB
Left Up Datenbankschema

Konto und Unterklassen

Konto

CREATE TABLE Konto 
(
  firnr       int4,
  knr         varchar(20),
  bezeichnung varchar(60),
  anfang      numeric(10,2) default '0.0',
  sumsoll     numeric(10,2) default '0.0',
  sumhaben    numeric(10,2) default '0.0',
  art         char(1),
  PRIMARY KEY (firnr,knr)
);
firnr,knr
ist die Kontonummer. firnr ist die Firmennummer, eine Mandantennummer oder so was. Bei mir ist es die Unix-Userid.
bezeichnung
eine Beschreibung des Kontos
anfang
Ist der Anfangsbestand bei Billanzkonten
sumsoll
ist die Summe aller Soll-Buchungen auf das Konto
sumhaben
Ist die Summe aller Haben-Buchungen auf das Konto
art ist der Typ des Kontos
Der Endbestand oder der Saldo berechnet sich je nach Kontotyp:
art beschreibung geht ein in berechnung saldo
A Aktiv-Konto Billanz bestand=anfang+sumsoll-sumhaben
P Passivkonto Billanz bestand=anfang+sumhaben-sumsoll
W Aufwandskonto GuV saldo=sumsoll-sumhaben
E Ertragskonto GuV saldo=sumhaben-sumsoll
Bei jeder Buchung muß nun transaktional (im Datenbank/Informatiksinn) die Gundbucheinträge gemacht und die neue Soll- und Haben-Summe der jeweiligen Konten ergänzt werden.

Wie in [Scheer95] wird die an sich logische Vererbungshierarchie

                Konto
                  |
          ---------------
          |             |
   Billanzkonto     Erfolgskonto
    |      |          |      |
Aktiv    Passiv    Aufwand  Ertrag
nicht im Schema berücksichtigt.

Die hier verwendente Datenbank Postgres kann leider kein UPDATE auf Unterklassen.
Die Unterscheidung muß daher in der Anwendungslogik erfolgen.

Unterklassen von Konto

Wegen obigen praktischen Grund werden die Unterklassen nicht mit dem Vererbungsmechanismen, sondern als extra Klasse (vertikal) definiert.
CREATE TABLE Bankkonto
(
  firnr       int4,
  knr         varchar(20),
  blz char(10),
  kto char(15),
  bktyp char(1)
); 
Debitoren und Kreditoren sind weitere wichtige Unterklassen, die hier noch nicht definiert sind.

Konvention:


Rudolf Weber Informatik- und Netzwerkverein Ravensburg e.V