Ah! Verstanden! Irgendwelche Ideen, wie das aussehen könnte? Wir suchen immer nach Möglichkeiten, es hier einfacher zu machen ![]()
Aber sicher! So etwas wie das Northwind-Datenmodell (bekannt aus MS Access!) wäre brillant. Es gibt vielleicht sogar ein Tool, das eines generieren kann, indem es das Postgres-Schema untersucht.
Kannst du das so teilen, als würdest du mit einem Anfänger sprechen? Zum Beispiel:
- Wobei würde das Hinzufügen helfen?
- Wie würdest du erwarten, das zu sehen, wenn es hinzugefügt wird? Wie würde es aussehen?
Ich nehme im Grunde deinen Vorschlag und bitte um weitere Details (so viele du geben kannst
), damit wir die Erfahrung für den nächsten Datenarchitekten, der vorbeikommt, verbessern können. Ich habe keinen Hintergrund in Daten, daher wird dein detaillierter Vorschlag hilfreich sein ![]()
Haha Osioke,
Ein sehr fairer Einwand! Berührt…
Die meisten Leute, die mit Datenbanken arbeiten (nicht nur Datenarchitekten! Auch Entwickler!), finden es sehr hilfreich, eine Art Datenmodell zu haben, das ihnen zeigt, wie die verschiedenen Tabellen miteinander verbunden sind.
Nehmen wir zum Beispiel meine Abfrage ;), ich benötigte mehrere Informationen über einen Benutzer – ich benötigte Informationen über einen Benutzer, der:
- in einer bestimmten Gruppe war (oder nicht war)
- ein Thema gelöst hatte
- innerhalb eines bestimmten Datumsbereichs
Um das oben Genannte zu beantworten, benötige ich die Benutzertabelle, die Tabelle für Benutzeraktionen und die Gruppentabelle. Ein Datenmodell hätte mir gezeigt, dass ich einen Benutzer über id/user_id mit einer Benutzeraktion und über deren primary_group_id/id visuell mit einer Gruppe verknüpfen kann.
Es hilft, nicht nur zu visualisieren, welche Daten verfügbar sind, sondern auch, wie man sie verknüpft, insbesondere wenn einige langwierige Abfragen im Spiel sind.
Ja, man könnte jede einzelne Tabelle im Daten-Explorer durchklicken, um herauszufinden, welche Felder verfügbar sind, und sie aufschreiben, damit man sie nicht vergisst, aber ein Datenmodell ist für einige von uns vielleicht etwas menschlicher ![]()
Ah! Wieder erwischt! ![]()
Ich bin nicht technisch, daher war das für mich nicht klar. Ich sehe aber den Bedarf, also ja. Ein Datenmodell wäre hilfreich. Mal sehen, was ich tun kann. ![]()
In der Zwischenzeit habe ich dieses Gespräch in ein neues Thema in unserer Kategorie Site feedback verschoben, damit die andere Diskussion sauber bleibt.
Das wäre fantastisch, danke!
Ich spreche mit dem Team und das ist aus vielen Gründen nichts, was einfach wäre. Wir haben es auch zu Feature verschoben, da dies mehr zeigt, was dies sein würde.
Derzeit verwenden diejenigen von uns, die intern mit Daten arbeiten, hauptsächlich die Modelle, die im Quellcode verfügbar sind:
Ich habe mir auch das Northwind-Datenmodell angesehen:
Das ist definitiv leicht zu verstehen und passt auf Papier oder einen Bildschirm. Insgesamt 13 Tabellen.
Verglichen mit Discourse haben wir viel mehr Tabellen, über 180 oder mehr. Die Visualisierung davon wäre … eine Reise. Insbesondere da es auch Tabellen von Plugins gibt (und diese sich von Installation zu Installation ändern) und Daten in *_custom_fields-Tabellen, die ebenfalls einbezogen werden sollten, wenn Sie wirklich ein vollständiges Bild erhalten möchten.
Auch aufgrund der Art und Weise, wie unsere Datenbank konzipiert ist, können wir die meisten Werkzeuge für das Datenmodell nicht verwenden. Wir müssten eines finden, das mit ActiveRecord-Modellen funktioniert. Und ich denke, das macht es auch schwierig. All diese Datenkonversationen übersteigen mein Verständnis. ![]()
Aber das heißt nicht, dass wir das nicht tun wollen. Das ist nur ein Kommentar. Ich würde mich freuen, Vorschläge von Ihnen oder anderen zu hören, wie wir dies verbessern können.
![]()
Es ist wirklich nicht sehr nützlich, da die schiere Größe, das Fehlen von Fremdschlüsseln und wir dem RDMS nur sehr wenig Logik überlassen, es schwierig macht, die Discourse-Datenbank ohne das Lesen des Discourse-Quellcodes zu verstehen.
Aber wenn Sie wirklich eine benötigen, kann RubyMine sie für Sie generieren.
Sie können eines mit Beziehungen mit rails-erd generieren: GitHub - voormedia/rails-erd: Generate Entity-Relationship Diagrams for Rails applications
Ich bin mir aber nicht sicher, wie nützlich das ist.
@lju Ich hoffe, all unsere Erklärungen helfen hier, besonders mit dem zusätzlichen Kontext. Ich werde dies in ein oder zwei Tagen schließen. Wenn Sie immer noch der Meinung sind, dass Sie zusätzliche Details benötigen, können Sie diese gerne erfragen.
Hallo @osioke,
Entschuldigen Sie die verspätete Antwort, ich hatte viel zu tun.
Ich habe einige Ideen, was hilfreich sein könnte – wenn Sie mir ein paar Tage Zeit geben, werde ich etwas ausarbeiten.
Viele Grüße,
Lju
Großartig! Ein paar Tage hast du jetzt
danke, dass du dem so viel Aufmerksamkeit schenkst.
Hallo zusammen,
Mein Argument wäre also, dass ein Datenmodell nützlich wäre, wir aber nicht unbedingt alle Tabellen aufnehmen müssen. Ich vermute, dass es wahrscheinlich die „wichtigen“ 15-25 Tabellen gibt, die 90 % aller Abfragen verwenden/nach denen die Leute suchen. Tatsächlich gibt es, wenn man sich die verschiedenen verfügbaren Tabellen ansieht, wahrscheinlich eine Reihe von Datenmodellen, die basierend auf den Arten von Abfragen/Daten, die Sie untersuchen möchten, erstellt werden könnten.
Ich kann in den nächsten Tagen einen Versuch unternehmen, die Tabellen zusammenzustellen, von denen ich glaube, dass sie am häufigsten abgefragt werden – dies wäre keine umfassende Recherche, nur ein Schuss ins Blaue. Ich bin sicher, dass die verschiedenen Fragen, die in der Kategorie „Data Explorer“ gestellt werden, auch ein Licht auf die beliebten Tabellen werfen werden.
Es könnte auch ein weiteres Diagramm geben, das „Zonen“ von Interesse darstellt, um die Navigation durch verschiedene Teile der verfügbaren Daten zu erleichtern.
Macht das Sinn?
Viele Grüße,
Lju
Der Daten-Explorer listet bereits die 9 wichtigsten Tabellen zuerst im UI-Panel für die Abfragebearbeitung auf, und Sie können die Spaltenstruktur und -typen aller Tabellen mit einem Klick sehen:
Könnten wir diese 9 Tabellen also in ein vereinfachtes Datenmodell umwandeln?
![]()
Sicher, teilen Sie die Ergebnisse mit!
verdammt, das ist riesig; eines der größten DB-Schemas, die ich online gesehen habe
wurde das mit https://dbdiagram.io erstellt? Können Sie die öffentliche URL des Diagramms teilen?
Ich bin mehr an den Beziehungen und Verbindungen zwischen diesen Tabellen interessiert
users,
user_options,
api_keys,
user_api_keys,
user_auth_tokens,
user_auth_token_logs,
notifications
danke
sehr hilfreich, aber es wäre großartig, eine teilbare URL zu haben, damit wir die Tabellenbeziehungen und auch die Primär-/Fremdschlüssel in den Tabellen sehen können
Gibt es 1:1-Beziehungen im Schema? Ich würde es gerne wissen, insbesondere zwischen den Tabellen users und user_options
Hat jemand Lust, bei den Beziehungen zwischen diesen Tabellen zu helfen? Aus dem Schemadiagramm
users,
user_options,
api_keys,
user_api_keys,
user_auth_tokens,
user_auth_token_logs,
notifications
Ich würde gerne wissen, ob es 1-zu-1-Beziehungen gibt.
Ich wäre dankbar.. danke
Es sind meistens 1-N, da Benutzer mehrere Benachrichtigungen, Authentifizierungstoken usw. haben.
user_options ist 1-1.

