| | | | |
| |||||||
| Datenbanken SQL und Co |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Hallo nixahnung, du solltest IMHO das Software-Design komplett überdenken. Meiner Einschätzung nach sollte das Datenmodell so geartet sein, dass du nur noch Objekte irgendwelcher Art pro Tabelle speicherst und die Zugehörigkeit zu einer Applikation oder zwischen Objekten entsprechend über Beziehungstabellen darstellst. So kannst du beispielsweise eine Tabelle anlegen, die alle Instanzen von Applikationen enthalten. Diese verknüpfen über eine FK-Tabelle alle Objekte, die dort zugehören. Im konkrenten Anwendungsfall (Login) muss deine Datenschicht dann nur noch wissen, welche Applikation gerade ausgeführt wird und die relevanten Benutzer mit einem JOIN über von der Applikationstabelle über die Beziehungstabelle zur Benutzertabelle abfragen. Alle weiteren Objekte stehen dann auch mittelbar oder unmittelbar mit der Applikation in Beziehung und erhalten somit die korrekte Zuordnung. So kannst du n Applikationen auf der selben Datenbasis halten und hast keine Zuordnungsprobleme. X Mal gleich geartete Tabellen zu haben ist nicht nur suboptimal, sondern aus Datenhaltungssicher auch Humbug. Solltest du nähere Informationen benötigen, können wir hier gerne mal ein Beispiel diskutieren. Ich warne dich allerdings schon jetzt: eine komplexe Applikation wir niemals einfach sein!
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Du drückst dich ziemlich unklar aus. Möchtest du eine Anwendung für 10 User, oder 10 Anwendungen für 10 User? Geht es grundsätzlich um die selbe Anwendung, ist sie "mandantenfähig", oder handelt es sich um komplett verschiedene Projekte? Wenn du antwortest, sei so nett und beantworte alle Fragen (ist leider nicht selbstverständlich hier, daher erwähne ich es). |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Hallo, vom Bauchgefühl her würde ich sagen, 10 Datenbanken sind nicht performanter als 1 Datenbank, weil hier 10 Datenbanken in den Cache müssen, da du vermutlich dauernd darauf zugreifen musst. Andererseits ist es vielleicht egal ob 10 * 1/10 oder 10 * 1 und rein logisch macht diese "logische" Trennung in verschiedene Datenbanken ja durchaus Sinn. Aber raten kannst du ja auch. dr.e. kann dir da vielleicht besser weiterhelfen. |
| | |
| | ||
| Moderator und Wett-König | Hallo nixahnung, Zitat:
Da ich nicht genau weiß, welche Objekte deine Applikation hat, kann ich nur ein bischen fabulieren. Grundsätzlich sollte dir aber das folgende UML zeigen, wie man soetwas aufzieht. ![]() In der Instanz der Applikation musst du natürlich die ID der Applikation bekannt geben, sonst hat der für die Initiualisierung dieser zuständige Quellcode-Teil keine Chance seine Arbeit zu tun. Weiterhin wird es immer Teile geben, die du nicht in der Datenbank konfigurieren/ablegen kannst (z.B. Datenbank-Zugangsdaten). Hier solltest du aus Performance-Gründen genau betrachten, was in die DB geschrieben wird und was in Text-Dateien. Für letzteres bieten sich *.ini-Dateien an. PHP implementiert hier mit der Funktion parse_ini_file() eine sehr effiziente und schnelle Möglichkeit auf diese Dateien zuzugreifen. Solltest du Fragen dazu haben, empfehle ich dir http://www.adventure-php-framework.o...plomarbeit.pdf zu lesen, oder mal auf der Webseite in meinem Footer vorbeizuschauen. Hier ist insbesondere das Gästebuch-Tutorial interessant.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | |
| Moderator und Wett-König | Hallo nixahnung, ich hoffe dir hat es nicht die Sprache verschlagen. Falls du etwas nicht verstehst, dann frag bitte. Wie schon gesagt, wirst du komplexe Probleme nicht mit einfachen Mitteln erschlagen können.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | ||
| Neuer Benutzer Registriert seit: 28.09.2007
Beiträge: 6
![]() | hallo, sorry das ich mich erst jetzt wieder melde. Zitat:
zb. die kategorie user. da habe ich je anwendung eine tabelle für die user und eine für deren zusätzliche angeben wie hobby, etc. die ja in beziehung zueinander stehen. die inhalte dieser tabellen möchte ich jetzt von jeder anwendung auch in der master anwendung haben. ich dachte da eine abfrage die alle usertabellen der einzelen anwendungen abfragt. | |
| | |
| | |||
| Moderator und Wett-König | Hallo nixahnung, Zitat:
Zitat:
- Die ID deiner Applikation wird irgendwo global definiert und ist der Datenschicht bekannt - Du legst eine Tabelle "Application" an - Du legst eine Tabelle "User" an - Du legst eine Tabelle "cmp_Application2User" an Anschließend kannst du mit dem folgenden Statement alle Benutzer einer Applikation abfragen: Code: SELECT * FROM User INNER JOIN cmp_Application2User ON User.UserID = cmp_Application2User.UserID INNER JOIN Application ON cmp_Application2User.AppsID = Application.AppsID WHERE Application.AppsID = '123'; Code: SELECT COUNT(User.UserID) AS UserExists FROM User INNER JOIN cmp_Application2User ON User.UserID = cmp_Application2User.UserID INNER JOIN Application ON cmp_Application2User.AppsID = Application.AppsID WHERE Application.AppsID = '123' AND User.Username = 'abc' AND User.Passwort = 'hash'; Solltest du noch Fragen haben, melde dich einfach. Vielleicht können wir dann auch mal gemeinsam eine Beispiel-Applikation entwerfen, damit dir klar wird, wie das funktioniert. Dafür bräuchte ich aber eine komplette Spezifikation der in deiner Anwendung vorkommenden Objekte und deren Beziehungen.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| performance problem mit join | leo | Datenbanken | 4 | 14.01.2008 22:31 |
| MySQL Join mit 3 Tabellen | quichibo | Datenbanken | 2 | 18.10.2007 10:58 |
| Temporäre Tabellen und Performance | Olsen | Datenbanken | 2 | 09.09.2006 17:08 |
| JOIN problem 2 tabellen - zeile(tab1) zu spalte(tab2) | Ministry | Datenbanken | 7 | 31.05.2006 10:31 |
| Problem mit Inner join | Jabi | Datenbanken | 15 | 09.05.2006 14:10 |
| LEFT OUTER JOIN für mehr als 2 Tabellen ? | Alpha Centauri | Datenbanken | 4 | 05.04.2006 16:18 |
| 2 Tabellen: Left outer join??? | Datenbanken | 2 | 14.09.2005 13:11 | |
| 3 Tabellen mit JOIN verknüpfen? | becks123 | Datenbanken | 6 | 13.08.2005 00:05 |
| [Erledigt] Join mit 3 Tabellen | Datenbanken | 21 | 16.05.2005 23:20 | |
| INNER JOIN mit 4 tabellen ??? | Dragon26mFR | Datenbanken | 5 | 01.05.2005 18:51 |
| Join aus drei Tabellen | Datenbanken | 9 | 04.03.2005 10:02 | |
| Ich bekomme nen einfachen JOIN von 2 Tabellen nicht hin. | pino | Datenbanken | 1 | 06.01.2005 21:09 |
| Join aus 3 Tabellen mit nur einer Verknüpfung? | Datenbanken | 7 | 24.09.2004 18:25 | |
| Abfrage über 2 Tabellen / Join | agrajag | Datenbanken | 2 | 14.09.2004 23:05 |
| [Erledigt] Join für Select Count(`id`)-Abfrage über 4 Tabellen | Datenbanken | 4 | 10.07.2004 18:32 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| db join, mehrere tabellen joinen performance, join über mehrere datenbanken, join verschiedene datenbanken, tabelle joinen, tabelle verwendungsgebiete, php parse_ini_file performance, tabellen join performance, http://www.php.de/datenbanken/45519-join-ueber-2-db-oder-tabellen-einer-db-performance.html, select über mehrere dbs, db join performance, performance datenbank ids einführen und joinen, join db, php parse_ini_file tabelle, db joins performance, inner join verschiedenen datenbank, uber2db, tabellen join geschwindigkeit, join von tabellen verschiedener datenbanken, php join db |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.