Eine Tabelle in mehreren Datenbanken

MySQL, PostgreSQL, SQLite
odysseus
Posts: 115
Joined: 2003-02-07 10:21

Eine Tabelle in mehreren Datenbanken

Post by odysseus » 2005-05-04 23:53

Ich bin auf ein Problem gestoßen, das ich gerne auf Datenbankebene lösen will (statt darum herum zu programmieren), aber ich bin mir ehrlich gesagt nicht sicher, ob das überhaupt möglich ist.

Es geht darum, dass ich auf einem Server vier Wikis habe. Alle sollen die gleiche User-Tabelle benutzen. Meine Idee war nun, dass ich die Tabelle nur in der einen Datenbank tatsächlich anlege und die MyISAM Dateien per Link in den Unterverzeichnissen der anderen Datenbanken bekannt mache.

Ich habe das nun mit ln und ln -s probiert. Die Tabelle tauchte tatsächlich dann in den anderen Datenbanken auf, aber Ã?nderungen wirkten sich nur in der jeweils aktiven DB aus - nicht aber in den anderen.


Der DB-Server ist MySQL 4.0.24, der Tabellentyp ist MyISAM.


Ich habe alle drei Dateien gelinkt, also tabelle.frm, tabelle.MYD und tabelle.MYI. Ich kann mir das beobachtete Verhalten nun nicht genau erklären, denn eigentlich sollte die Datei ja nur ein einziges Mal existieren.


Die andere Frage ist, ob dieses Vorgehen überhaupt "gesund" ist ... immerhin pfuscht man damit dem DB-Server ja auch Dateiebene dazwischen, und das sollte man ja eigentlich nicht tun.


Wenn jemand Erfahrungen zu diesem Thema hat oder eine andere Lösung vorschlagen kann, wäre ich sehr interessiert daran. :)

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Eine Tabelle in mehreren Datenbanken

Post by oxygen » 2005-05-05 00:57

Was spricht dagegen, die Daten aller Wikis in einer Datenbank nur halt mit unterschiedlichen prefixen zu speichern? Für die User Datenbank musst du dann vielleicht etwas Hand anlegen. Sollte aber einfach sein.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Eine Tabelle in mehreren Datenbanken

Post by Joe User » 2005-05-05 09:46

Zuzüglich zu øxygens Vorschlag musst Du für die Wiki-DBs auch noch den gleichen DB-User verwenden. Alternativ bleibt Dir nur das Schreiben eines Wrappers...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

odysseus
Posts: 115
Joined: 2003-02-07 10:21

Re: Eine Tabelle in mehreren Datenbanken

Post by odysseus » 2005-05-05 10:07

øxygen wrote:Was spricht dagegen, die Daten aller Wikis in einer Datenbank nur halt mit unterschiedlichen prefixen zu speichern? Für die User Datenbank musst du dann vielleicht etwas Hand anlegen. Sollte aber einfach sein.
Ich hätte die eizelnen Datenbanken eigentlich schon ganz gerne getrennt gehalten. Ist einfach "robuster". Mein Herzblut hängt jedoch nicht unbedingt an dieser Trennung. :)

Ich wollte so wenig wie möglich "Hand anlagen" müssen, um den Wartungsaufwand zu minimieren, und um mich nicht zu tief in die MediaWiki Software einarbeiten zu müssen. Das Umprogrammieren aller Queries mit Zugriffen auf die drei Tabellen mit den Userdaten ist natürlich mehr Aufwand als mehrfach zugreifbare Tabellen. Deswegen suche ich erst mal nach Möglichkeiten, das zu umgehen. Falls es auf Datenbank-Ebene oder noch darunter nicht realisierbar ist, muss ich halt tatsächlich herumprogrammieren - das ist klar.