Mysql - Datensätze mit Foreign Key zwischen Organisationen teilen

HorstSch87

Cadet 4th Year
Registriert
Aug. 2017
Beiträge
88
Hi,

Ich habe ein etwas spezielles Datenbankdesign Problem:

Ich habe 2 Tabellen:
1. Items
Die Tabelle beinhaltet eine Item_Id (Primary Key) und eine Subject_Id (Foreign Key) sowie weitere Daten.
2. Subject
Hier ist die Subject_Id der Primary Key, der von der Itemtabelle referenziert wird. Die Tabelle enthält außerdem weitere Daten.

Nun zum Problem:
Die Anwendung soll lokal bei verschiedenen Organisationen laufen, die untereinander keinen Zugriff auf die Daten der anderen Organisationen haben sollen. Mit einer Ausnahme: Einzelne Elemente der Items Tabelle sollen für andere Organisationen freigegeben werden können, die der Subject Tabelle jedoch ausdrücklich nicht. Das Problem ist offensichtlich, dass die Subject-Tabellen bei den einzelnen Organisationen nicht übereinstimmen werden, sodass ich derzeit keine Möglichkeit sehe, wie ich ein korrektes Mapping von geteilten Items zu lokalen Subjects hinbekomme.

Hat jemand eine Idee, wie man in diesem Fall vorgehen kann?
 
Ein Webservice / Webinterface machen der globale Datensätze und deren IDs verwaltet wäre eine Möglichkeit. Falls Du z.B. PHP einsetzt, kannst Du diesen Service dann easy mit Boardmitteln (z.B. cURL) ansprechen. Aber ging natürlich mit jeder Programmiersprache die eine HTTP Request Fähigkeit mitbringt. Diese globale Datenbank müsste dann natürlich an einem Ort gehostet werden. Zur Absicherung könntest Du den Zugriff auf den Webservice nur den WAN IPs der Standorte erlauben oder je nach Konstrukt auch mit Verschlüsselung und/oder VPN arbeiten (das wäre aber eher optional und ggf over the top).

Weitere Möglichkeit: Man kann bei MySQL ja auch der Zugriff von anderen Hosts (auch ausserhalb) erlauben. Das ist aber je nach Anzahl Standorte nicht sehr schön und bei Anpassungen an der globalen Datenbank muss der Code bei allen Standorten mehr oder weniger gleichzeitig verteilt werden da es ansonsten zu Fehler und/oder Datenverlusten kommen könnte.
 
Zurück
Oben