Wir haben gerade die Datenbank (DB) als Metapher für Bibliotheken, Speicher, Bibliothekare und Netzwerke beschrieben. Lassen Sie uns jetzt sehen, wie es tatsächlich vor unseren Augen funktioniert.
Wie Webdienste Informationen speichern, wie sie gespeichert und wiederhergestellt werden, wie sie verbunden sind und wie sie angezeigt werden,
Wenn Sie es mit Rails selbst ausprobieren und es fühlen möchten, ist es an der Zeit.
Teil 1. Erstellen von "Erinnerungen" für Webdienste
Lassen Sie uns das Post-Modell erstellen
Die Erinnerung des Webs beginnt mit Aufzeichnungen. Nennen wir die Aufzeichnung "Beitrag (Post)".
Im Terminal:
rails generate model Post title:string body:text
rails db:migrate
Was diese beiden Zeilen bedeuten, ist sehr einfach.
"Wir werden eine Struktur namens Post mit Speicherplätzen für Titel und Text (body) erstellen."
"Und wir werden diese Struktur im tatsächlichen Speicherplatz namens DB reflektieren."
Jetzt hat Rails das "Regal (Post-Tabelle)" der Bibliothek erstellt und es ermöglicht, dass ein Buch mit zwei Spalten, "Titel" und "Text", in dieses Regal gesteckt werden kann.
Teil 2. Gehen Sie mit der Rails-Konsole in die DB und sprechen Sie direkt damit
Lassen Sie uns ein Buch ins Regal der Bibliothek stellen
Im Terminal:
rails console
Und lassen Sie uns ein Buch hineinlegen.
Post.create(title: "Mein erster Beitrag", body: "Wurde in Rails DB gespeichert!")
Sobald Sie die Eingabetaste drücken, haben Sie einen ersten Datensatz in der "Erinnerung" des Webs aufgezeichnet.
Diese eine Zeile ist viel mächtiger als jeder bisher geschriebene Code.
Denn dies ist die Erstellung von unvergesslichen Erinnerungen.
Teil 3. Die DB ist ein "unvergesslicher Raum"
Fragen Sie die Rails-Konsole erneut.
Post.all
Dann sagt Rails zur DB:
"Bring mir alle Bücher im Post-Regal!"
Und die DB bringt die gerade gespeicherten Daten ohne den geringsten Fehler.
Das ist genau das, was die Erinnerung des Webs ist, ein unvergesslicher Raum.
Auch wenn der Server ausgeschaltet und wieder eingeschaltet wird, der Computer neu gestartet wird oder Sie eine Woche später zurückkehren, bleibt diese Erinnerung erhalten.
Teil 4. Erleben Sie eine "fein sortierte Bibliothek"
ID, erstellt_am, aktualisiert_am sind das Klassifizierungssystem der Bibliothek
Lassen Sie uns den gerade erstellten Post überprüfen.
post = Post.first
post.id
post.created_at
post.updated_at
Jetzt wissen Sie:
id = Buchnummer
created_at = Datum, an dem das Buch erstellt wurde
updated_at = Datum der letzten Änderung
Die DB ordnet alle Aufzeichnungen akribisch, auch wenn Sie es nicht tun.
Diese Aufzeichnungen bilden die Grundlage für das strukturierte Speichern vieler Daten.
Die DB ist kein einfacher Speicherplatz, sondern eine fein sortierte Bibliothek.
Teil 5. Erleben Sie einen "Schnellen Bibliothekar, der Hunderttausende von Büchern schnell findet"
Suchen Sie nach Büchern anhand von Kriterien
Post.where(title: "Mein erster Beitrag")
Rails sagt zur DB:
"Finde mir nur Bücher mit dem Titel 'Mein erster Beitrag'."
Die DB findet und zeigt sie sofort an.
Egal ob es 10, 1.000 oder 1 Million Daten sind, sie werden genau gefunden.
Denn die DB hat einen übermenschlichen Bibliothekar, der selbst in einer enormen Bibliothek sofort finden kann.
Sie haben gerade diese Fähigkeit selbst genutzt.
Teil 6. Erstellen Sie ein "intelligentes Netzwerk" selbst
Lassen Sie uns einen Kommentar (Comment) erstellen und mit dem Post verknüpfen
Der Moment, in dem Webdienste wirklich leistungsstark werden, ist, wenn die Daten miteinander verbunden sind.
Zum Beispiel, lassen Sie uns Kommentare zu Blog-Posts hinzufügen.
rails generate model Comment body:text post:references
rails db:migrate
Dieses Modell sagt:
"Ein Kommentar hat einen Inhalt (body)" und
"Es wird Daten speichern, die zu einem Beitrag (post_id) gehören."
Lassen Sie Rails über die Beziehung informieren
app/models/post.rb
class Post < ApplicationRecord
has_many :comments
end
app/models/comment.rb
class Comment < ApplicationRecord
belongs_to :post
end
Jetzt sind Post und Comment ein perfekt verbundenes intelligentes Netzwerk.
Teil 7. Erstellen Sie tatsächlich verbundene Daten
In der Konsole:
post = Post.first
post.comments.create(body: "Erster Kommentar!")
post.comments.create(body: "Zweiter Kommentar!")
Lassen Sie uns jetzt die Kommentare lesen.
post.comments
Die DB weiß genau:
Welcher Kommentar zu welchem Post gehört
Wie viele Kommentare zu einem Beitrag hinzugefügt wurden
Wann diese Kommentare gespeichert wurden
Wenn Daten miteinander verbunden sind, wird der Webdienst endlich zu einem organischen System.
Teil 8. Jetzt verstehen Sie, warum die DB das "Herz" eines Webdienstes ist
In dem kurzen praktischen Übungsabschnitt, den Sie bisher durchlaufen haben, haben Sie Folgendes erlebt.
Die Erinnerung des Webs
→ Der Prozess des Speicherns und Abrufens von Daten
Ein unvergesslicher Raum
→ Daten, die mit Post.create erstellt wurden, bleiben dauerhaft erhalten
Eine fein sortierte Bibliothek
→ id, Zeitstempel und andere automatische Sortierfunktionen
Ein schneller Bibliothekar, der Hunderttausende von Büchern schnell findet
→ Mit Post.where können Sie nach gewünschten Daten suchen
Ein intelligentes Netzwerk
→ Durch Festlegen der Beziehung zwischen Post und Kommentar werden Daten miteinander verbunden
Das Herz eines Webdienstes
→ Speicherung, Beziehungen und Suchvorgänge erfolgen alle in der DB
Sie haben jetzt verstanden, warum ein Webdienst ohne Datenbank nicht existieren kann und warum das Beherrschen der DB gleichbedeutend mit dem Beherrschen des Webdienstes ist.
Jetzt keimt ein Gedanke im Geist des Lesers
Jeder Leser, der bis hierher gefolgt ist, wird unweigerlich Folgendes denken.
"Moment mal... Ich könnte vielleicht
meinen eigenen Blog erstellen, oder?""Es scheint, als könnte ich auch eine ToDo-App mit meinen Freunden erstellen."
"Ein Webdienst... scheint machbarer zu sein als gedacht?"
Das ist der Moment des Erwachens, den wir anstreben.
Wenn Daten greifbar werden,
wird der Webdienst nicht mehr nur eine Technologie der fernen Zukunft sein,
sondern eine Realität, die jetzt in meinen Händen entsteht.
Und Rails flüstert Ihnen jetzt zu:
"Entscheiden Sie sich jetzt, welchen Dienst Sie erstellen möchten.
Danach werde ich Ihnen helfen."