Datenmodelle Designer
Erstellung einer Datenbank mit dem Datenmodell-Designer
Datenbank-Design
Nun ist es an der Zeit, Ihre eigene Datenbank zu entwerfen. Gehen Sie dazu auf die Registerkarte Database auf der linken Seite.
Datenmodelle
Die Daten in der Datenbank werden in Form von speziellen Tabellen (Modellen) gespeichert. Wie Sie feststellen können, haben wir bereits ein Modell. Es ist Teil des Berechtigungsmoduls und ist standardmäßig in jedem Projekt enthalten. Mit seiner Hilfe werden neue Benutzer der Anwendung angelegt und bestehende verwaltet. Aber wir werden uns jetzt nicht damit beschäftigen, sondern unser eigenes Modell erstellen.
Stellen Sie sich vor, dass wir einen Kartendienst entwickeln. Lassen Sie uns ein Modell erstellen, das Informationen über Länder enthält. Um es zu erstellen, klicken Sie mit der rechten Maustaste in einen leeren Bereich des Canvas und wählen Sie Create empty model.
Um es zu erstellen, müssen wir nur den Namen des Modells angeben. Mit der automatischen Generierung von Endpunkten und Elementen der Benutzeroberfläche werden wir uns in weiteren Modulen des Kurses beschäftigen.
Modell-Felder
Bitte beachten Sie, dass das Modell unmittelbar nach der Erstellung bereits 4 Felder enthält. Dabei handelt es sich um Systemfelder, deren Vorhandensein die anfängliche Erstellung und weitere Verwendung des Modells stark vereinfacht.
ID (integer) - Eindeutiger Bezeichner, Primärschlüssel. Er wird automatisch für jeden neuen Eintrag in der Tabelle erstellt und soll sicherstellen, dass es keine Duplikate gibt. Anhand der ID können Sie einen Datensatz in einer Tabelle eindeutig identifizieren. Ihr Wert beginnt bei 1 und wird bei jedem neuen Eintrag automatisch um 1 erhöht.
CreatedAt (datetime) - Der Zeitpunkt, zu dem der Eintrag in der Tabelle erstellt wurde.
UpdatedAt (datetime) - Der Zeitpunkt, an dem der Eintrag zuletzt geändert wurde.
DeletedAt (datetime) - Der Zeitpunkt, an dem der Eintrag gelöscht wurde. Natürlich nur dann, wenn ein Soft-Removal verwendet wurde. Das heißt, eine solche Löschung, bei der der Eintrag nur als gelöscht markiert und durch Zugriffsanfragen gefiltert wird, aber gleichzeitig physisch in der Tabelle verbleibt. Dies unterscheidet sich von der Massenlöschung, bei der die Daten tatsächlich vollständig gelöscht werden.
Zusätzlich zu den Systemfeldern ist es ratsam, dem erstellten Modell benutzerdefinierte Felder hinzuzufügen. Nehmen wir an, wir möchten den Namen des Landes und eine Beschreibung mit Informationen darüber sehen.
Die Wahl des Feldtyps sollte kein Problem sein. String eignet sich für den Namen und Text für die informative Beschreibung.
Darüber hinaus stehen vier weitere Schalter zur Verfügung:
Multiple values (Array) - Arrays anstelle von einzelnen Einträgen zu verwenden.
Not null - das angegebene Feld darf nicht leer sein, sondern muss immer Daten enthalten.
Unique - der Wert des Feldes muss eindeutig sein, in diesem Modell kann es keine zwei Datensätze geben, deren Werte in diesem Feld gleich sind.
Index - gibt an, dass ein spezieller Index für dieses Feld erstellt wird, um die Suche zu beschleunigen.
Im Allgemeinen ist es nur dann richtig, ein Häkchen zu setzen, wenn es wirklich notwendig ist. Wir könnten zum Beispiel Not null und Unique für Ländernamen ankreuzen, wenn wir davon ausgehen, dass es kein Land ohne Namen oder zwei Länder mit demselben Namen geben kann. Es ist jedoch eine gute Idee, dies in der Phase der Erstellung der Anwendungslogik zu kontrollieren und keine Einschränkungen in der Datenbank selbst vorzunehmen.
Legen Sie auf ähnliche Weise eine Tabelle mit Informationen über Städte an. Überlegen Sie, welche Datenfelder sie enthalten kann und welchen Typ diese Felder haben.
Datenmodelle - Beziehungen
Die Daten in der Datenbank existieren nicht für sich allein in Form von verstreuten Tabellen. Sie stehen in einer bestimmten Beziehung zueinander. Der Schlüssel zur Entwicklung eines Datenmodells besteht darin, diese Beziehungen zu definieren und Beziehungen herzustellen.
Um solche Beziehungen herzustellen, muss man mit der Maus eine Linie von der Grenze eines Modells zu einem anderen ziehen. In unserem Beispiel wissen wir sicher, dass jede Stadt in einem bestimmten Land liegt, also können wir eine Verbindung von Land zu Stadt herstellen.
Es gibt 3 verschiedene Arten von Verbindungen:
Eins-zu-eins (has one). Jeder Datensatz in der Tabelle wird einem Datensatz aus der zugehörigen Tabelle zugeordnet (dies gilt auch in umgekehrter Richtung). Ein einfaches Beispiel ist eine Person und ihr Reisepass. Wir können immer sicher sein, dass diese Verbindung eindeutig ist. Ein Reisepass kann nur einen Inhaber haben, und jede Person kann nur einen gültigen Reisepass besitzen.
One-to-many (has many). Jeder Datensatz in einer Tabelle kann viele Datensätze in einer anderen Tabelle haben. Unsere Datenbank ist ein ähnliches Beispiel. Ein Land kann viele verschiedene Städte haben, aber jede Stadt kann nur zu einem Land gehören. Das ist die Verbindung, die wir herstellen werden.
Viele-zu-viele. Eine Beziehung, bei der mehrere Datensätze aus einer Tabelle mit mehreren Datensätzen aus einer anderen Tabelle übereinstimmen können. Ein einfaches Beispiel ist die Beziehung zwischen Lehrern und Schülern. Jeder Lehrer kann viele Schüler unterrichten, so wie jeder Schüler von vielen verschiedenen Lehrern lernen kann.