Ich arbeite an einem Projekt (in Django geschrieben), das nur wenige Entitäten, aber viele Zeilen für jede Entität hat.Erstellen einer DSL-Abfragesprache
In meiner Anwendung habe ich mehrere statische "Berichte", direkt in SQL geschrieben. Die Benutzer können die Datenbank auch über ein generisches Filterformular durchsuchen. Da die Zielgruppe wirklich technisch versiert ist und der Filter zu einem bestimmten Zeitpunkt nicht ihren Bedürfnissen entspricht, denke ich über das Erstellen einer Abfragesprache für meine Datenbank wie YQL oder Jira's advanced search nach.
Ich fand http://sourceforge.net/projects/littletable/ und http://www.quicksort.co.uk/DeeDoc.html, aber es scheint, dass sie nur auf In-Memory-Objekte arbeiten. Da die Datenbank zu groß sein kann, um sie im Speicher zu halten, würde ich bevorzugen, dass die Abfrage in SQL (oder besser eine Django-Abfrage) übersetzt wird, bevor die eigentliche Arbeit ausgeführt wird.
Gibt es eine Bibliothek oder Best Practices, um dies zu tun?
Sie könnten dieses Zope Add-on als Beispiel ansehen: http://www.dieter.handshake.de/pyprojects/zope/AdvancedQuery.html –
Aber SQL ist schon DSL) – Denis