[gnucash-de] GnuCash Verbesserungen

Frank H. Ellenberger frank.h.ellenberger at gmail.com
Fr Mär 20 07:01:51 EDT 2015


Am 20.03.2015 um 00:43 schrieb Hartmut Kraus:
> Am 18.03.2015 um 10:04 schrieb Frank H. Ellenberger:
>> Am 16.03.2015 um 17:15 schrieb Hartmut Kraus:
>>
>>> ich bastele also an Linux-Shellscripts und Stored Procedures / kleinen
>>> Modifikationen für die MySQL - Datenbank von GNUCash, die mir das in
>>> einem Rutsch machen.
>>
>> Gegen Linux-Shellscripts ist nichts einzuwenden, aber Stored Procedures
>> halte ich für eine ziemlich gefährliche Sache. Lies Dir mal die
>> Diskussion startend mit
>> http://lists.gnucash.org/pipermail/gnucash-user/2015-March/059174.html
>> durch. John Ralls erklärt da einiges zum Stand des SQL-backends.
> 
> Hab's mal überflogen - keine Gefahr. ;)
> 
> Da geht's um Zugriffsprobleme von GNUCash auf PostgreSQL, nicht
> MySQL. Außerdem lege ich meine Prozeduren (Synonym: "Routinen")
> ja direkt in der Datenbank an, nicht im Source von GNUCash.

PostgreSQL und MySQL spielen in der gleichen Liga. Während SQLite nur
ein Subset von SQL:92 implementiert hat, erfüllen die beiden
erstgenannten neuere Standards.

Zusammenfassend kann man sagen:
GnuCash wurde nicht als Datenbank-Anwendung entworfen, sondern das
DBI-Backend wurde nachträglich hinzugefügt. Daraus resultiert:
* Die Gnucash-DB befindet sich nicht in Normalform.
 http://de.wikipedia.org/wiki/Normalisierung_%28Datenbank%29
Das soll in den nächsten Jahren umgebaut werden.

* Die Regeln für die Integrität befinden sich im Programm und nicht in
der Datenbank.

* Wenn man Daten an libgncmod-engine vorbei manipuliert, kann man
sicherlich sehr viel Spaß haben, darf sich dann aber über Inkonsistenzen
nicht beschweren. ;-)

> (Wie gesagt: Pures C ist mir für so eine komplexe Sache echt zu stressig -
> nochmal Hut ab vor den Jungs, die sich diese Arbeit gemacht haben. ;)
> In einer "höheren" Sprache stellst du so ein Formular mit ein paar Maus-
> klicks zusammen, siehst schon in der IDE, wie's aussehen wird ...

Siehe http://wiki.gnucash.org/wiki/CuteCash.
Daneben findet unter der Oberfläche ganz sachte ein Wechsel von GObject
nach C++ statt.

> Natürlich ist für die Funktionalität auch noch einiges an Code
> erforderlich,
> aber unvergleichlich einfacher und produktiver. (Hab' sowas jahrelang ge-
> macht, Anwendungsentwicklung mit Visual Basic,  Centura und Smalltalk
> auf der Basis von relationalen Datenbanken, also SQL. Ok, unter Windows,
> aber seit geraumer Zeit gibt's auch für Linux entsprechende IDEs - auch
> solche, mit denen du auf beiden Plattformen coden und für beide compi-
> lieren kannst, wie z.B. Lazarus.)
> 
> Aber nochmal zu deinen Bedenken bezügl. irgendwelcher "Gefahren" mit
> SQL: Das sind keine. Ich kam auch erst nicht auf meinen MySQL-Server, hab'
> auf GNUCash und auf Gott und die Welt geflucht ... Das Problem: Ich hab'
> den
> Server und GNUCash auf Linux laufen, aber ein anderes Programm und den
> MySQL-Debugger unter Windows auf einer virtuellen Maschine. Und der
> Server weigerte sich beharrlich,  mit der "Außenwelt"  zu reden ... Das wa-
> ren nur meine Fehler bei der Konfiguration des Netzwerks und der Anlage
> der User in der Datenbank. Hier mal was zum Schmunzeln - was man da
> so alles falsch machen kann:
> 
> http://www.internetforen.de/viewtopic.php?f=3&t=14213
> 
> Und vorgestern ging mal wieder nix, weil ich meine DSL-"Easy-Box" (also den
> Router für die Verbindung zur Außenwelt) mal wieder auf Werkseinstellun-
> gen resetten musste. Und danach hatte er dieselbe IP-Adresse wie meine
> Linux-Kiste - darauf muss man auch erst mal kommen. ;) Darauf hat mich
> dann aber der nette Vodafone-Support gebracht - wenn's auch nicht einfach
> war, sich zu jemandem durchzutelefonieren, der das wusste. ;) Jetzt ist
> alles
> paletti.

Das wäre für den "normalen" Anwender wohhl etwas zuviel Spaß.



Mehr Informationen über die Mailingliste gnucash-de