Neulich habe ich ein Befehlszeilentool namens Pyagram erstellt, das automatisch ein Zustandsübergangsdiagramm generiert, aber als zusätzliche Funktion die Beziehung zwischen Tabellen aus der Anweisung CREATE TABLE Implementierung einer Funktion zum automatischen Generieren eines einfachen ER-Diagramms, das nur verstanden werden kann.
Persönlich verwende ich überhaupt keine externen Schlüssel. Bei Verwendung von MySQL Workbench gab es also ein Problem, dass ich kein ER-Diagramm mit Beziehungen zwischen Tabellen erstellen konnte. Aus diesem Grund habe ich beschlossen, ein Tool zu erstellen, mit dem Eltern und Kind anhand des Spaltennamens erraten und zugeordnet werden können, auch wenn kein externer Schlüssel vorhanden ist.
Es gibt einige Einschränkungen bei der Verwendung. Bitte beachten Sie die folgenden Informationen, bevor Sie sie verwenden.
Außerdem ist die Überprüfung möglicherweise immer noch unzureichend, sodass sie möglicherweise nicht funktioniert. Wir würden uns freuen, wenn Sie dies im Kommentarbereich oder in der Github-Ausgabe melden könnten.
Das Folgende ist die generierte Zahl.
Bereiten Sie eine Datei vor, in der die folgende Anweisung CREATE TABLE als Eingabedatei definiert ist.
CREATE TABLE employees (
id INT(11) NOT NULL AUTO_INCREMENT,
birth_date DATE NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
gender INT(11) NOT NULL,
hire_date DATE NOT NULL,
department_id int(11),
PRIMARY KEY('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE departments (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
PRIMARY KEY('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE titles (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
PRIMARY KEY('id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE employee_title (
employee_id INT(11) NOT NULL,
title_id INT(11) NOT NULL,
from_date DATE NOT NULL,
to_date DATE NOT NULL,
PRIMARY KEY('employee_id', 'title_id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE salaries (
id INT(11) NOT NULL AUTO_INCREMENT,
employee_id INT(11) NOT NULL,
salary INT(11) NOT NULL,
from_date DATE NOT NULL,
to_date DATE NOT NULL,
PRIMARY KEY('id'),
KEY('employee_id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Führen Sie den folgenden Befehl aus, um das Diagramm zu generieren.
pyagram -t {Bildtyp} -o {Ausgabepfad} -i {Eingabedatei} -f {Schriftartenname} -d erd
Sie können es auch mit dem folgenden Befehl installieren.
pip3 install pyagram
Für dieses Update haben wir eine große Änderung vorgenommen, um es zu einer steckbaren Implementierung zu machen. Durch Erben der Klasse "Diagramm" können Sie beliebig viele Klassen zur Diagrammgenerierung erstellen. In der Diagrammklasse
Es gibt ungefähr vier Prozesse, aber in der Klasse, die Diagram erbt, wird es so erstellt, dass 1 bis 3 implementiert werden können.
In Zukunft möchte ich die Anzahl der Ausgabeelemente und die Arten von RDBMS, die dies unterstützen, erhöhen, aber es wird ein wenig schmerzhaft sein, daher möchte ich mir die Zeit nehmen, um fortzufahren.