2009-03-06 2 views
3

Das "Open-for-Business-Projekt" ist ein Enterprise-Framework.Jira mit Enterprise-Architektur von OfBiz

Es passiert so, dass Jira das verwendet, und ich war ziemlich schockiert darüber, wie viel Arbeit nötig ist, um Daten für eine bestimmte Entität zu ziehen (sagen wir ein Problem in Jiras Fall).

Stellen Sie sich vor, Sie erhalten eine Liste mit allen Problemen. Zuerst müssen Sie alle Spalten (oder Eigenschaften) für die Tabellenspalte anzeigen und dann die Werte für jede Ausgabe abrufen. Für eine Enterprise-Lösung klingt das nach einer sub-optimalen Lösung (aber ich verstehe, wie es Flexibilität hinzufügt).

können Sie lesen, wie in Jira verwendet seine praktisch: http://confluence.atlassian.com/display/JIRA/Database+Schema

Haupt-Website: http://ofbiz.apache.org/docs/entity.html

ich als nur verwirrt bin, wie alle Probleme aufzulisten. Bedeutung, wie würden die SQL Abfragen aussehen?

Es ist eine Sache, ein einzelnes Problem zu ziehen, aber um eine Liste zu bekommen, müssen Sie viel Arbeit machen, um die Werte zu bekommen. Ich denke nicht, dass es mit einer singl-Abfrage mit Joins jetzt getan werden kann, oder?

+0

Der OFBiz Link https://cwiki.apache.org/confluence/display/OFBIZ/Entity+ geändert hat Motor + Führer – JacquesLeRoux

Antwort

0

Die in jira verwendete Entitäts-Engine ist eine Datenbankabstraktionsschicht (mit einer sehr umfangreichen und einfach zu verwendenden API), die Ihre Anwendung mit einer oder mehreren Datenquellen verbindet. Aber die Datenbanken sind immer noch relational, so dass Sie SQL verwenden können, wenn Sie möchten. Über die Issue-Informationen, die Sie ziehen möchten, würde ich sagen, dass es nur mit Joins nicht sehr einfach wäre. Ich würde empfehlen, dass Sie die Skriptsprache des RDBMS verwenden (z. B. PL/SQL, pgPL/SQL).

6

(Disclaimer: Ich für Atlassian arbeiten, aber ich bin nicht auf dem JIRA-Team)

OFBiz EE zum Bewegen zwischen Datenbanktabellen nur eine Abstraktionsschicht ist und Phantasie GenericValues ​​genannt Karten. Es hat keinen Einfluss auf das Datenbankschema selbst. Ihr wirkliches Problem scheint hier zu sein, dass JIRAs Datenbankschema kompliziert ist.

Der Grund, warum es kompliziert ist, ist, weil es ein Datenmodell unterstützen muss, wo ein Problem eine willkürliche Sammlung beliebiger Felder ist, irgendwann in einem willkürlichen Workflow. Die Felder selbst können durch Plugins von Drittanbietern definiert werden. Es ist sehr schwierig, ein freundlich aussehendes RDBMS-Schema für diese Art von dynamischem Datenmodell zu erstellen, und JIRA versucht es so gut es geht.

Sie können Informationen direkt aus der Datenbank erhalten, wenn Sie möchten, das Datenbankschema ist im obigen Link dokumentiert, oder Sie können eine Schicht oder zwölf Abstraktion hinaufgehen und durch eines der JIRAs viele APIs sprechen.

Ein guter Ort, um Fragen zu stellen über Daten aus JIRA immer ist die Foren auf http://forums.atlassian.com/

0
SELECT * FROM jiraissue;