2017-02-09 7 views
0

Ich mache eine Datenbank mit Daten darin. Diese Datenbank hat zwei Kunden: 1) einen .NET Webserver, der die Daten irgendwie für die Benutzer sichtbar macht. 2) ein Python-Dataminer, der die Daten erstellt und die Tabellen füllt.Ein ORM zwischen Sprachen teilen

Ich habe mehrere Möglichkeiten. Ich kann das .NET Entity Framework verwenden, um die Datenbank zu erstellen, und sie dann auf der Python-Seite zurückentwickeln. Ich kann das umgekehrt. Ich kann nur Roh-SQL-Anweisungen in das eine oder andere System oder beides schreiben. Was sind mögliche Fallstricke, um dies auf die eine oder andere Weise zu tun? Ich bin besorgt, zum Beispiel, dass, wenn ich das Python-ORM verwende, um die Tabellen zu erstellen, dann werde ich eine harte Zeit im .NET-Raum haben ...

+0

Für 'Python' möchten Sie vielleicht in [' SQLAlchemy automap'] (http://docs.sqlalchemy.org/en/latest/orm/extensions/automap.html) und ['django inspectdb'] (https://docs.djangoproject.com/de/1.10/howto/legacy-databases/). Obwohl beide mit einigen Einschränkungen verbunden sind. – danielx

+0

Ich bin mir bewusst, dass dies Dinge sind, aber nach meiner Erfahrung sind solche Funktionen so konzipiert, dass sie "einmal ausgeführt werden und dann Code First in der Zukunft verwenden". Ich kann nur "Code First" in der einen oder anderen Sprache schreiben, also werde ich jeden Tag SQLAlchemy automatisieren. Wer macht das einfacher, automap oder inspectdb? – Scott

+0

Ich weiß es nicht, obwohl SQLAlchemy Automap eher ephemere scheint, da es auf Nachfrage reflektiert wird. Ein anderer Ansatz für dieses Problem besteht darin, dass der Dataminer über eine vom Webserver angebotene API in die Datenbank liest/schreibt. Der Dataminer würde dann von seinen Bedenken bezüglich der zugrunde liegenden Datenbankschicht getrennt werden. Nur meine zwei Cent. – danielx

Antwort

0

Ich liebe Fragen wie das. Hier ist, was Sie beachten müssen, Ihre Website muss schnell sein, und der Flaschenhals der meisten Websites ist eine Datenbank. Die Antwort auf Ihre Frage wäre - machen Sie es einfach für .NET mit SQL zu arbeiten. Das erfordert wenig mehr Arbeit mit Python, wie das Angeben von Namen der Tabelle, vielleicht Zeilennamen. Ich denke, Django und SQLAlchemy sind beide gut dafür.

Eine andere Lösung könnte eine Brücke zwischen Datenbank mit gesammelten Daten und Datenbank sein, um Daten anzuzeigen. Auf einem Hintergrund können Sie eine Aufgabe/einen Job haben, um die gesammelten Daten in Ihre Hauptdatenbank zu migrieren. Das ist auch eine Option und wird Ihre Arbeit erleichtern, mindestens alle Datenbank-spezifischen und seltsamen Code wird an die dritte Komponente gehen.

Ich habe ziemlich lange mit .NET gearbeitet, bevor ich zu python wechselte, und was Sie wissen sollten, ist, dass Sie mit jeder Strategie, die Sie gewählt haben, mit Daten in beiden Sprachen und ORMs arbeiten können. Machen Sie den schwierigsten Teil des Jobs in der Sprache, die Sie besser kennen. Wenn Sie ein Python-Entwickler sind, wählen Sie Python, um mit den richtigen Namen von Tabellen und Zeilen zu verfahren.

Verwandte Themen