Datenbanken sind riesige Städte.

Datenbanken sind riesige Städte. Sie können eine Stadt mit Rails entwerfen und die Datenbank intuitiv verstehen. Versuchen Sie, die Struktur und das Datenmodell der Datenbank auf natürliche Weise mit dem Stadtbild zu verstehen.

밤치 82

Datenbanken sind wie eine riesige Stadt - Entwerfen Sie Städte mit Rails und verstehen Sie Datenbanken intuitiv

Bis jetzt haben wir Datenbanken in Schubladen oder Kisten gesteckt.

Lass uns dieses Mal in eine völlig andere Welt gehen.

Denken wir an DB = Stadt.

Eine Stadt hat Bezirke, Gebäude und darin viele Räume.

  • Datenbank = Gesamte Stadt

  • Tabelle = Gebäude

  • Datensatz = Raum

  • Spalte = Eigenschaften im Raum (Größe, Verwendung, Preis usw.)

Die Stadtmethapher ist die natürlichste Methode, um das strukturelle Konzept der Datenbank und das relationale Datenmodell zu verstehen.

Lassen Sie uns jetzt direkt mit Rails "Städte entwerfen" und erleben, wie die Datenbank aufgebaut ist.


Teil 1. Das erste Gebäude in der Stadt namens DB errichten

Im Terminal:

rails generate model Building name:string floors:integer
rails db:migrate

Diese Befehle können wie folgt interpretiert werden.

"Ich werde ein Gebäude namens Building in der Stadt (DB) bauen.

Das Gebäude hat Eigenschaften wie Namen (name) und Stockwerke (floors)."

Rails errichtet aufgrund dieses Befehls Gebäude in der Stadt und definiert Eigenschaften (Felder), die in jedem Gebäude gemeinsam vorhanden sind.

Jetzt gibt es in unserer Stadt ein Gebäude namens Building.


Teil 2. Es möglich machen, "Räume" im Gebäude zu erstellen

Es müssen tatsächlich Räume im Gebäude vorhanden sein, damit Menschen darin leben können, Miete erhalten können und die Stadt Bedeutung hat.

Lassen Sie uns also versuchen, eine Tabelle für Räume zu erstellen.

rails generate model Room number:string size:integer building:references
rails db:migrate

Das bedeutet:

"Erstelle einen Raum namens Room und

zeige, zu welchem Gebäude (Building) diese Räume gehören."

Rails erstellt automatisch ein Feld namens building_id, um die Verbindung zwischen Räumen und dem zugehörigen Gebäude herzustellen.

Das ist die Beziehung (relationship) der Datenbank.

(So natürlich in der Stadtmethapher, dass keine Erklärung erforderlich ist!)


Teil 3. Rails beibringen, die "Beziehung zwischen Gebäude und Räumen" zu verstehen

app/models/building.rb

class Building < ApplicationRecord
  has_many :rooms
end

app/models/room.rb

class Room < ApplicationRecord
  belongs_to :building
end

Jetzt hat Rails es vollständig verstanden.

  • Im Gebäude (Building) gibt es mehrere Räume

  • Räume (Room) gehören immer zu einem bestimmten Gebäude (Building)

In der Stadtmethapher ist dies der Moment, in dem Sie erkennen, dass die so offensichtliche Struktur die grundlegende Prinzipien der Datenbank sind.


Teil 4. Erstellen wir ein "Gebäude" direkt in der Konsole

Im Rails-Konsolenmodus:

b = Building.create(name: "Star Tower", floors: 30)

Hier haben wir in der Stadt (DB) ein echtes Gebäude namens "Star Tower" errichtet.


Teil 5. Erstellen wir Räume im Gebäude

b.rooms.create(number: "101", size: 28)
b.rooms.create(number: "102", size: 33)
b.rooms.create(number: "201", size: 40)

Jetzt gibt es im Gebäude "Star Tower" drei Räume.

In diesem Moment passt die Struktur Stadt → Gebäude → Raum genau zur strukturiellen Essenz der Datenbank.


Teil 6. Schauen wir uns die Räume an

(Wie das Anzeigen der Raumliste in einem bestimmten Gebäude in der Stadt)

b.rooms

Rails fordert so an:

"Zeige mir alle Räume dieses Gebäudes (Building)!"

Die Datenbank findet genau die Räume, die zum "Star Tower" gehören, aus einer Million Gebäuden in der Stadt.

Das ist der Grund, warum die Datenbank wie ein "Stadtverwaltungssystem" für moderne Webdienste alle Daten schnell und präzise verwalten kann.


Teil 7. Räume basierend auf bestimmten Eigenschaften finden

(Wie bei einer Immobiliensuche)

Room.where(size: 33)

Dieser Befehl bedeutet:

"Finde alle Räume in der gesamten Stadt mit einer Größe von 33."

Wie bei der Suche nach Rauminformationen im Web wählt die Datenbank Tausende oder Zehntausende von Räumen aus, die den Kriterien entsprechen.


Teil 8. Jetzt verstehen Sie

"Oh... Die DB ist die Stadt,

die Tabelle ist das Gebäude,

der Datensatz ist der Raum, das klingt so natürlich."

"Tatsächlich fühlt es sich an, als würde man mit Rails eine Stadt bauen,

und das Konzept wird klar in meinem Kopf."

"Dann könnte ich, wie beim Entwerfen einer Stadt,

auch das Design von Daten für Webdienste erstellen, oder?"

In dem Moment, in dem dieses Gefühl entsteht,

ist die Datenbank nicht mehr nur eine abstrakte Technologie.

Sie sind jetzt ein Entwickler mit dem Denken eines Architekten.

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

Get notified of new posts

We'll email you when Bamchi Blog publishes new content.

Your email will only be used for new post notifications.