macOS-BETA-UPDATES BITTE NICHT AUF PRODUKTIVSYSTEMEN EINSPIELEN
Alle Hinweise und Informationen finden Sie unter folgendem Link.
Liebe Zollsoft-Entwickler,

ich übe gerade SQL-Abfragen und möchte in einem externen Tool (TablePlus) die SQL-Datenbank meines tomedo-Systems dazu benutzen (langfristiges Ziel ist es, verschiedene custom-Statistiken zu erstellen, die momentan leider nur "patienten bezogen" möglich sind). Obwohl man bei Statistiken es auch machen kann möchte ich es aus verschiedenen Gründen eben mit einem externen Tool machen. Meine Idee ist, ein "SQL dump" zu erzeugen und in TablePlus einzulesen. Daher die Frage: wie mache ich es bei tomedos postgresql? Wenn es eine bessere Möglicheit gibt, dann bin ich natürlich ganz Ohr :-)
Gefragt in Frage von (4k Punkte)
0 Punkte

1 Antwort

Beste Antwort
Sehr geehrter Herr Burau,

dazu können sie einfach ein Backup aus den Servertools kopieren. In jedem Backup befindet sich ein Ordner, der tomedo_Datenbank.backup heißt. Der ist voll mit numerierten Dateien (z. B. 23456.dat.gz). Diesen Ordner brauchen Sie mit allen Dateien. In Ihrem Programm müssen Sie dann vermutlich Directory als Restore-Typ angeben.

Ihre Experimente sollten Sie am besten nicht auf Ihrem Praxisserver machen, damit man nicht später ausversehen durcheinander kommt, wenn da mehr als eine Datenbank installiert ist.

Mit freundlichen Grüßen

Mathias Pamperin
Beantwortet von (12.8k Punkte)
ausgewählt von
0 Punkte
Lieber Herr Pamperin,

vielen Dank für die prompte Antwort! Die "Übungsdtenbank" will ich selbsredend auf einem anderen Rechner installieren - aber danke auch für diesen Hinweis! Wissen Sie evtl., ob man diesen "SQL dump" auch mit mit SQLite bearbeiten kann? Das macht es nochmals einfacher, weil einige Tools (zB das o.g. TablePlus) SQLite eingebaut haben und man daher nicht nochmals eine ganze DB-Engine installieren muss. Mir ist dabei auch bewusst, dass die SQL-Dialekte SQLite <-> PostgreSQL unterschiedlich sind.
Hi, nein, das wird leider nicht funktionieren. Sie brauchen etwas, das postgreSQL kompatibel ist. Unter der Haube (also jenseits von SQL zum Bedienen) sind die beiden Technologien einfach zu verschieden, um von irgendwas gemeinsam benutzt werden zu können.

Alles klar, danke. Dann eben mit zusätzlicher Installation :-)

Ich erlaube mir noch eine Frage: wenn ich in tomedo mit 

SELECT *
FROM patient
LIMIT 40;

die Spalten ansehe, dann gibt es dort eine Spalte "Jahre". Diese kann ich aber mit  

SELECT Jahre
FROM patient
LIMIT 40;

nicht anzeigen lassen wegen Fehler. Ist es eine sog. "generated column"? Gilt das selbe auch für die Spalte "Patientendetails ident"?

Ah ja, das ist eine Besonderheit der Statistiken in tomedo: Die haben bei SQL Abfragen ein Post-Prozessing. Das heißt der Client erkennt, um welche Klasse von Objekten es sich handelt und macht Dinge. Im Falle von Patienten scheinbar die Spalte Jahre einfügen. Wenn Sie den gleichen Befehl, also „select * form patient limit 40“ in ein Programm zur Datenbankbearbeitung eingeben, z. B. PGAdmin auf Ihrem Server, dann sehen Sie alle Attribute, die die Klasse Patient tatsächlich besitzt.

Jede Klasse hat bei uns ein Attribut „ident“ in der Datenbank. Die Idents sind eindeutig. Anhand der Idents können sie Tabellen mittels join verbinden. Um z. B. Patient und Patientendetails zu joinen, können Sie

SELECT * FROM patient JOIN patientendetails ON patientendetails.ident = patient.patientendetails_ident

schreiben. Zwischen patient und patientendetails gibt es nur eine 1 zu 1 Relation, deshalb müssen Sie sich hier auch keine Gedanken um die Art des Joins machen. Sieht dann schon anders aus, wenn es 1 zu N Relationen sind.
OK, danke nochmals für die Info.

Mein Problem war wohl die Schreibweise (der "white space" bei Patientendetails_ident). Dann hat es mit dem JOIN auch geklappt.

Ja, das mit der 1:1 Relation habe ich angenommen und es hat hier geklappt. Bin auch schon gespannt, wie ich die 1:n oder n:m Relationen herausfinden werde. Ich nehme an, ein ER-Diagramm für derart komplexe Datenbank wie in tomedo gibt es nicht bei Ihnen irgendwo ;-)
Wenn Sie ein wenig Englisch können gibt es hier https://www.w3schools.com/sql/sql_join.asp die verschiedenen Joins (ein wenig runter scrollen) auch mit Beschreibung etc. zum Angucken.

Na ja, unsere Datenbank ist halt wie tomedo selbst: Immer in Bewegung. Das macht es schwer sowas zu pflegen.

Auch hier danke für den Tipp. Die Seite kenne ich :-) Ich persönlich finde die Erklärungen hier noch besser.

17,294 Beiträge
25,365 Antworten
45,056 Kommentare
17,669 Nutzer