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. :)
Eine Tabelle in mehreren Datenbanken
Re: Eine Tabelle in mehreren Datenbanken
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.
Re: Eine Tabelle in mehreren Datenbanken
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/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings 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.
Wings for Life ● Wings 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.
Re: Eine Tabelle in mehreren Datenbanken
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. :)ø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 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.