Mailinglisten-Archive |
Aloha, > Von: Ron Opitz[SMTP:ron.opitz_(at)_dts.de] > > ich schreibe gerade einen mandantenfähige Software mit folgendem Aufbau: > pro Mandant eine Datenbank und eine mit den mandantenübergreifenden Daten. > > System; Mand001; Mand002; ... > Unter System werden die Sessiondaten und Benutzer gespeichert. > Das würde ich so nicht machen. Jeder Mandant hat eigene User --> Session-ID; Mandant; User; Sessiondaten P-Key auf Session-ID. > Jetzt möchte ich noch einen Ortestamm hinzufügen. Dieser Ortestamm soll > nicht > als Prüfstelle dienen, mehr werden in den Adressen die ID des Ortes > gespeichert. Problem ist, wo speichere ich diesen. > Das macht nicht mal SAP so ... da ist eine Adresstabelle ungefähr so aufgebaut: Mandant; User-ID; Name; Vorname; Ort; .... P-Key auf Mandant und User-ID. Bei SAP ist in allen Mandantenabhängigen Tabellen die erste Spalte IMMER der Mandant. > Pro Mandant, nur dann habe ich mehrere Datenbestände aber einen > einfachen Zugriff per SQL > oder Zentral in der Datenbank System nur wie mache ich dann den Zugriff > auf > die Daten innerhalb einer Query. > > select a.name1, a.name2, a.strasse, o.ort !!!from adresse a, ort o!!! > where > o.pid = a.pid_ort; > ? wo ist da das Problem ? Wenn du die !!! weglässt, funktioniert das doch. Das Pro- blem ist nur, daß in ort alle Orte drin sein können - und auch die können sich ändern. > Eine weitere Herausforderung stellt noch dar, das die Lösung unter meheren > > DBMS (Oracle, MySQL) laufen soll. > Datenbank abstrahieren. Mit allen Vorteilen und Nachteilen. Du musst mit dem kleinsten Nenner aller Datenbanken arbeiten, und das macht noch nicht mal die phplib-DB-Abstraktions- schicht ... Stored Procedures usw kannst du dann vergessen, und auch Datenbank-Moni- toring über die Anwendung. Grüße, Mathias
php::bar PHP Wiki - Listenarchive