phpbar.de logo

Mailinglisten-Archive

[php] Mysql Joints

[php] Mysql Joints

Ulf Wendel ulf_(at)_redsys.de
Tue, 04 Apr 2000 20:10:53 +0200


Peter Karsten wrote:
> ich hoffe meine kurze frage versteht jemand,..

Hallo Peter, 

das fällt schwer, weil die Mail grausam dargestellt wird.
 
> mein problem ist ich hab ne datenbank wo eintraege stehen und in der anderen
> datenbank stehn ein paar user die jeweils einen eintrag in der ersten datenbank
> zugeordnet werden müssen dann muss ich noch ein formular erstellen 
> welches mir gleichzeitig den user eintraegt und den datensatz , 
> kann mir da jemand auf die sprünge helfen??

Ich versuche das mal zusammenzufassen. Dein Datenbanksystem arbeitet mit
verteilten Daten. Du hast eine Datenbank "Data" und eine "User". Die
"User" Datenbank ist recht "dumm", enthält lediglich Personaldaten
während die "Data" Datenbank irgendwelche Daten enthält. Du möchtest nun
Einträgen aus der "User" Datenbank mit Einträgen aus der "Data"
Datenbank verknüpfen und letztlich per PHP Webfrontend darstellen.

Was für eine kranke Konstruktion! Natürlich kannst Du die Tabellen der
"User" Datenbank um Felder ergänzen, die Keys der "Data" Datenbank
enthalten. Dann geht Dein PHP Skript daher und macht folgendes:

- Connect zur DB "User"
- Connect zur DB "Data"

Lese User.Datakey aus uns speichere diesen, lese Data aus wobei gilt:
Data.ID = ausgelesene ID. Du kannst nicht schreiben:

select 
   DBUser.personen.fileID as fileID,
   DBData.filelist.*
from 
   DBUser.personen,
   DBData.filelist
where 
   DBUser.personen.fileID = DBData.filelist.ID 

... und schon gar nicht weitere Einschränkungen in der where-clause. Es
gibt keine Joins (Selects, Foreign Keys,...) über mehrere Datenbanken
hinweg. MySQL ist dazu nicht in der Lage und selbst ein Monster wie
Oracle mußte m.W. passen. Oracle bietet jedoch im Gegensatz zu MySQL
Möglichkeiten die Last, die eine logische Datenbank erzeugt auf
verschiedene Maschinen und auf einer Maschine sehr fein auf einzelne
Platten/Partionen zu verteilen.

Du kannst also entweder den beschriebenen Weg gehen, oder die
Datenbanken zusammenführen. Wenn Du dich für ersteres entscheidest, sei
Dir darüber klar, daß mehr Features als ein einfaches Eintragen/Auslesen
(ohne Konsistenzprüfungen!) sehr viel Schmerzen verursacht. 

Ulf


php::bar PHP Wiki   -   Listenarchive