Ich habe vor kurzem die Arbeit an einem Projekt begonnen, das die Erstellung einer Web-basierten Reporting-Schnittstelle für eine ziemlich alte Software für die Verwaltung einiger Access Control Hardware wie elektronische Türschlösser zum Beispiel enthält.
Ich habe CakePHP für die Aufgabe ausgewählt und alles, was es beinhaltet, ist die Abfrage der Datenbank nach den Protokolldatensätzen und deren Anzeige auf der Website. Die Software ist in C++ geschrieben und benutzt MSDE (eine verkleinerte Version von Microsoft SQL Server 7.0 oder 2000) und ich konnte CakePHP so konfigurieren, dass es sich erfolgreich mit der DB verbindet.Abfrage von Daten aus mehreren gruppierten Tabellen als eine einheitliche
Das Problem ist, dass der Entwickler dieser Software ausgewählt hat, die Protokolle in der Datenbank zu speichern, indem eine separate Tabelle für jeden Tag erstellt. So sieht es wie folgt aus:
tbl_DoorEvent_2008_08_07
tbl_DoorEvent_2008_08_08
tbl_DoorEvent_2008_08_09
tbl_DoorEvent_2008_08_10
...
Ich bin nicht wirklich vertraut mit MSDE, aber ich bezweifle, dass es immer noch eine akzeptable Praxis ist eine Datenbank, wie diese zu gestalten und zu pflegen. Ich weiß nicht, wie die Desktop-Software es schafft, alle Informationen abzufragen, wenn alles in diesem Format ist, aber meine CakePHP-Anwendung hat es wirklich schwer, das zu kauen.
Ich möchte mit MVC für die Webanwendung bleiben, aber ich weiß nicht, wie Sie das DooreventModel in CakePHP implementieren, damit es die Informationen aus allen partitionierten Tabellen erhält.
Ich habe versucht, einige Hacks Umsetzung wie
UNION ALL SELECT * FROM tbl_DoorEvent_2008_08_07
UNION ALL SELECT * FROM tbl_DoorEvent_2008_08_08
....
und diese Art von Arbeiten verwenden, aber wenn ich WHERE Beschränkung auf der gesamten Abfrage oder einen anderen SQL-Operator ausführen möge es nicht funktioniert. Eine der Anforderungen war, dass die webbasierte Anwendung keine zusätzlichen Datenbanken oder Tabellen hinzufügt oder erstellt und nur die vorhandenen verwendet, um die Berichte anzuzeigen, sodass das Erstellen einer großen Tabelle, die alle gruppierten Tabellen enthält, nicht erfolgt wirklich eine Option.
Ich hoffe nur, dass jemand mit einer SQLServer-Funktion kommen wird, die alle Tabellen in mir für jedes Mal zusammenführen wird, wenn ich eine Abfrage durchführe, aber ich weiß, dass dies ein bisschen optimistisch ist, also bin ich offen für alle Vorschläge. Und bitte denken Sie daran, dass die Lösung mit CakePHP und als ein einziges Modell in der MVC
plzsendzmetehcode? –
Mitch, welchen Code? – duckyflip