Datenbanken vernetzen

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Postby Bushranger » 04. February 2006 22:03

P.S.

was für ein manual wäre denn hier so zu empfehlen? so für die Dummies? denn auch Zwerge haben eben klein angefangen.
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby KingCrunch » 05. February 2006 18:25

Also Manual einfach das mySQL Manual. Oder ein anderes SQL-Manual ;)

@topic:
Was spricht denn weiterhin dagegen, wenn beide Subroutinen auf eine Tabelle zugreifen, anstatt das beide ihre eigene bekommen, die regelmässig synchronisiert werden müssen?

Ansonsten kannste dir nen kleines PHP-script schreiben, welches eine Tabelle komplett ausliest und in die andere Tabelle reinschreibt.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby M3g4Star » 06. February 2006 08:38

Nein ... PHP ... *tss* ... soll ja nicht PHP werden.

:lol:

Ich hab ehrlichgesagt das ganze Prob immer noch nicht ganz verstanden.
Eine DB füllen mit Werten. OK.

Dann mach das wie King schon gesagt hat per PHPMyAdmin und gut.

:shock:
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby Bushranger » 11. February 2006 14:16

also zunächst mal vielen Dank für Eure Hilfestellung, ich muss mich wohl doch mit php auseinandersetzen, denn ich will das ganze über über eine webseite machen in der ich dann die daten eingeben bzw. auslesen kann. Zumindest hab ich jetzt mal eine Idee, wie ich das ganze angehen kann.
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby M3g4Star » 13. February 2006 08:16

denn ich will das ganze über über eine webseite machen in der ich dann die daten eingeben bzw. auslesen kann


Haaaaaaaaaaaaaaaa .... Doch PHP !!!! :D

:shock: :roll:
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby deepsurfer » 13. February 2006 19:09

Kurze zwischenfrage @Bushranger

a)
Diese angesprochenen Datenbanken, liegen diese auf einem und dem selbern Server oder sind diese Ortmässig verstreut ?

b)
Sind diese Server (oder halt der eine) basierend auf Linux oder haben die Windows als Betriebssystem laufen ?
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Bushranger » 18. February 2006 10:45

@deepserver

die Datenbank soll auf dem gleichen PC installiert werden, auf dem ich auch xampp installieren will, also auf dem Server.
Als BS habe ich w2k vorgesehen, von Linux verstehe ich nicht so viel.
die Eingaben bzw. Abfragen sollen dann webbasiert von den verschiedenen clients des intranets erfolgen.
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby deepsurfer » 18. February 2006 14:39

Bushranger wrote:@deepserver (deepsurfer) ;)

die Datenbank soll auf dem gleichen PC installiert werden, auf dem ich auch xampp installieren will, also auf dem Server.
Als BS habe ich w2k vorgesehen, von Linux verstehe ich nicht so viel.
die Eingaben bzw. Abfragen sollen dann webbasiert von den verschiedenen clients des intranets erfolgen.


Soooooo, jetzt sieht die sache für mich Konzeptionell so aus

- Also, mehrere Clients (Workstation wo Leute dransitzen) == soweit OK
- ein Webserver (XAMPP) wo ein Webinterface vorhanden ist, das die Clients abrufen. == soweit Ok
- hinter diesem Webinterface existiert eine MySQL-Datenbank. == soweit OK

ABER (sofern ich das nun richtg interpretiere)
- Client A arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle A

- Client B arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle B

- Client C arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle A

- Client D arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle B

Und du möchtest nun ein Lösungweg habe wie man die Daten die in Tabelle A sind, automatisch in Tabelle B rüberschickt (kopiert/ergänzen/hinzufügen) sodass alle Clients dann die selben Daten haben.

trifft das Konstrukt so zu ?

Wenn ja, dann ist die Frage von KingCrunch und M3g4Star einleuchtend, "warum nicht alle Clients via Webinterface nur die Tabelle A füttern"

Sollte das aus vorgebenen Gründen (jetziges Webinterface) nicht umsetzbar sein, dann ist dein Hilferuf nach einem Lösungsweg absolut legitim.

ergo: gibt es eine Automatisierte MySQL funktion die zeitnah den Inhalt von Tabelle A nach Tabelle B abgleicht und auch umgekehrt.

Hierzu trifft es zu das Wiedmann sagt:
MySQL Dokumentation lesen, was ja naheliegend ist

Der Hinweis das mit PHP zu machen ist damit hinfällig, denn mittels PHP ist keine zeitnahe Abgleichung innerhalb von MySQL möglich.


Ich hoffe ich hab den ganzen Kram jetzt mal sortiert und verständlich hier wiedergegeben.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Bushranger » 20. February 2006 12:29

deepsurfer wrote:Soooooo, jetzt sieht die sache für mich Konzeptionell so aus

- Also, mehrere Clients (Workstation wo Leute dransitzen) == soweit OK
- ein Webserver (XAMPP) wo ein Webinterface vorhanden ist, das die Clients abrufen. == soweit Ok
- hinter diesem Webinterface existiert eine MySQL-Datenbank. == soweit OK
völlig korrekt so!

ABER (sofern ich das nun richtg interpretiere)
- Client A arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle A

- Client B arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle A

- Client C arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle A

- Client D arbeitet via Webinterface und "füttert" in Datenbank FIRMA die Tabelle B

Und du möchtest nun ein Lösungweg habe wie man die Daten die in Tabelle A sind, automatisch in Tabelle B rüberschickt (kopiert/ergänzen/hinzufügen) sodass alle Clients dann die selben Daten haben.

trifft das Konstrukt so zu ?


Genau!

Die Tabelle bzw. die Datenbank wird von einem Bildverwaltungs- und Archivierungsprogramm automatisch bei der Installation generiert, da kann ich also nicht viel machen, so dass client D ( das ist ein Computertomograph ) Daten immer in tabelle B reinschreibt, wobei aber Tabelle A viele Felder von B besitzen, die ich nicht eben nochmal manuell eingeben lassen möchte.
ich möchte also Teile der Tabelle B automatisch in A übernehmen wie name, vorname, geschlecht geburtsdatum, etc, die bereits dort vorhanden sind und nur noch einiges manuell ergänzen.
Da das Prog in C++ geschrieben ist und ich davon keine Ahnung habe, muss ich also die Sache über SQL machen, wo ich mich derzeit mittels eines Tutorials durchquäle, sonst wäre es natürlich einfacher, wie bereits angemerkt, die Sache parallel gleich in A reinzuschreiben, was leider nicht vorgesehen ist.
Habe ich jetzt die Sache verständlich ausgedrückt?
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby Wiedmann » 20. February 2006 13:28

so dass client D Daten immer in tabelle B reinschreibt, wobei aber Tabelle A viele Felder von B besitzen, die ich nicht eben nochmal manuell eingeben lassen möchte.

Wenn Tabelle A die selben Felder wie Tabelle B besitzt, ist das ja schonmal ein Designfehler.
--> Die Möglichkeit bei der Abfragen die Werte aus Spalten von verschiedenen Tabellen zu nehmen ist dir bekannt?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Bushranger » 20. February 2006 14:42

Im Prinzip hättest du recht, dass es ein Designfehler wäre, dass Tabelle A teilweise mit B übereinstimmt, nur sollte Tab A eigentlich mit Daten mit HL7 gefüttert werden ( Datenformat in der medizin ).
Da ich das nicht verwende, möchte ich nun die Daten, die Tab. B gemeinsam mit A hat, in A rüberkopieren, bzw synchronisieren. Aber wie man das genau macht weiss ich auch nicht, denn ich hab gerade angefangen, mich hier durch so ein Tutorium durchzuquälen, ich bin da also auf Hilfe angewiesen.
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby Bushranger » 20. February 2006 14:59

m das ganze vielleicht was konkreter darzustellen hab ich mal die Strukturen der beiden datenbanken hier reinkopiert

Tabelle B

+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| StudyInsta | varchar(64) | NO | PRI | | |
| StudyDate | char(8) | YES | | NULL | |
| StudyTime | varchar(16) | YES | | NULL | |
| StudyID | varchar(16) | YES | | NULL | |
| StudyDescr | varchar(64) | YES | | NULL | |
| AccessionN | varchar(16) | YES | | NULL | |
| ReqPhysi | varchar(64) | YES | | NULL | |
| PatientsAg | varchar(16) | YES | | NULL | |
| PatientsWe | varchar(16) | YES | | NULL | |
| StudyModal | varchar(64) | YES | | NULL | |
| StationNam | varchar(16) | YES | | NULL | |
| Institutio | varchar(64) | YES | | NULL | |
| PatientNam | varchar(64) | YES | | NULL | |
| PatientBir | char(8) | YES | | NULL | |
| PatientSex | varchar(16) | YES | | NULL | |
| PatientID | varchar(64) | YES | MUL | NULL | |
| AccessTime | int(11) | YES | | NULL | |
| qTimeStamp | int(11) | YES | | NULL | |
| qFlags | int(11) | YES | | NULL | |
| qSpare | varchar(64) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+

Tabelle A
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| AccessionN | varchar(16) | NO | PRI | | |
| PatientID | varchar(64) | YES | | NULL | |
| PatientNam | varchar(64) | YES | | NULL | |
| PatientBir | char(8) | YES | | NULL | |
| PatientSex | varchar(16) | YES | | NULL | |
| MedicalAle | varchar(64) | YES | | NULL | |
| ContrastAl | varchar(64) | YES | | NULL | |
| StudyInsta | varchar(64) | YES | | NULL | |
| ReqPhysici | varchar(64) | YES | | NULL | |
| ReqProcDes | varchar(16) | YES | | NULL | |
| Modality | varchar(16) | YES | | NULL | |
| ReqContras | varchar(64) | YES | | NULL | |
| ScheduledA | varchar(16) | YES | | NULL | |
| StartDate | char(8) | YES | | NULL | |
| StartTime | varchar(16) | YES | | NULL | |
| PerfPhysic | varchar(64) | YES | | NULL | |
| SchedPSDes | varchar(64) | YES | | NULL | |
| SchedPSID | varchar(16) | YES | | NULL | |
| SchedStati | varchar(16) | YES | | NULL | |
| SchedPSLoc | varchar(16) | YES | | NULL | |
| PreMedicat | varchar(64) | YES | | NULL | |
| SchedPSCom | varchar(64) | YES | | NULL | |
| ReqProcID | varchar(16) | YES | | NULL | |
| ReqProcPri | varchar(16) | YES | | NULL | |
| AccessTime | int(11) | YES | | NULL | |
| qTimeStamp | int(11) | YES | | NULL | |
| qFlags | int(11) | YES | | NULL | |
| qSpare | varchar(64) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+

ich will also Daten, die B gemeinsam mit A hat, in A kopieren, ein Teil der anderen Datenfelder muss manuell gefüllt werden.
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby Wiedmann » 20. February 2006 15:54

ich will also Daten, die B gemeinsam mit A hat, in A kopieren, ein Teil der anderen Datenfelder muss manuell gefüllt werden.

Wie schon gesagt, dass A gemeinsame Spalten mit B hat ist Unfug.
--> Ob du jetzt z.B. 2 Felder aus einer Tabelle ausliest, oder diese 2 Felder aus zwei Tabellen (aus jeder Tabelle 1 Feld) bleibt sich im Prinzip gleich. Man hat halt nur keine doppelte Speicherwaltung und es gibt kein Problem, da bei Kopien diese ja immer Konsistent sein müssten.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Bushranger » 20. February 2006 16:45

und was bedeutet das jetzt konkret? wie kann ich denn die Daten duplizieren?
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby KingCrunch » 20. February 2006 16:48

Garnicht, genau das gilt es zu vermeiden ;) Du sollst aus beiden Tabellen jeweils das auslesen, was du brauchst ohne Kopien anzulegen. Mal abgesehen davon, dass es dem Konzept von Datenbanken widerspricht, hast du dabei immer das Problem, dass du sie (im schlimmsten Fall) ständig synchron halten musst. Zudem bringt es keinerlei Vorteile (wie Wiedmann bereits erwähnte), ob du aus einer Tabelle zwei Spalten oder aus zwei Tabellen eine Spalte ausliest. (Zumindest keine messbaren, wenn überhaupt)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

PreviousNext

Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 7 guests