Qt/C++ Model für 3 mysql-Tabellen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Rolling
Beiträge: 1
Registriert: 27. Dezember 2010 12:08

Qt/C++ Model für 3 mysql-Tabellen

Beitrag von Rolling »

Hallo,

ich versuche mich langsam in C++/Qt einzuarbeiten. Ich habe auch schon für meine Beispiel-App erfolge und hoffe es im oberflächlichsten Sinne verstanden zu haben, wie ich es anstellen soll. Ich habe vor ca. 10 Jahren c gut beherrscht, aber leider auch da, das letzte mal programmiert. Ob ich mit meiner Anfrage in dem richtigen Forum bin? Qt würde auch stimmen...

Voraussetzungen:
mingw
qt+mysqlplugin 4.7.1
qtcreator als IDE

Das Problem ist eher abstrakt:

Ich habe 3 mysql-Tabellen die relativ groß sind:
workflow(~1000),actions(~25000),transitions(~50000)
Diese Tabellen liegen nicht lokal, sondern im Netzwerk... der gesamte Traffic liegt bei ca. 150 MB...

Die Relations sind folgende:

workflow:
PK_workflowid
...
params1_n

actions:
1. FK_worklowid
2. actions_id
1. und 2. ergeben PK
...
params1_n

transitions:
1. FK_worklowid
2. FK_actions_id
3. trans_id
1.,2. und 3. ergeben PK
....
params1_n

Grundsätzlich sollen die Workflows,Actions und Transitions in einem TreeView angezeigt werden...
Inhalte aus den params1_n sollen rechts vom Baum in Textfeldern, Comboboxen o.ä. angezeigt werden...

Das rudimentäre schreiben in ein QtItemModel hat funktioniert und der Baum sieht chiq aus! Ich möchte aber sauber und effizient programmieren...

Wie würdet ihr das o.g. relationale Datenbank-Schema am besten mit Qt oder C++ umsetzen...

Wenn ich mich nicht alzu dämlich anstelle, wäre mein Verständnis ein QTAbstractModel selbst zu bauen und die Daten dort reinzuladen...

Idealerweise sollte später ein Workflow samt Actions &Transitions gelockt werden(andere Table) und bearbeitet werden(samt commit und revert).

Eine weitere Frage, die mich beschäftigt ist, ob es effizienter ist alle Daten auf einmal zu laden, oder ondemand...

Das ganze Thema hat keine Eile, sondern beruht eher auf meinem Hobby wieder mehr für die Programmierung zu tun :)
Antworten