Datenbanken fühlen - Erstellen Sie einen "Webdienst zum Erinnern" mit Rails von Hand.

Datenbank erstellen und Erfahrung mit Speichern, Verbinden und Suchen von Webdiensten sammeln. Zeit, um das Postmodell mit Rails zu erstellen und zu lernen, wie es mit der Datenbank interagiert.

밤치 40

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."