La base de données est une grande ville.

La base de données est une grande ville. En concevant une ville avec Rails, vous pouvez comprendre la base de données de manière intuitive. Essayez de comprendre naturellement la structure et le modèle de données de la base de données avec la métaphore de la ville.

bamchi 486

La base de données est une grande ville - Concevoir une ville avec Rails pour comprendre intuitivement la base de données

Jusqu'à présent,

Nous avons comparé la base de données (DB) à une armoire ou une boîte.

Cette fois, allons dans un monde complètement différent.

Pensons que DB = ville.

Une ville a des zones, des bâtiments,

Et à l'intérieur, il y a de nombreuses chambres.

  • Base de données = Ville entière

  • Table = Bâtiment

  • Enregistrement = Chambre

  • Colonne = Attributs de la chambre (taille, utilisation, prix, etc.)

La métaphore de la ville est

La métaphore la plus naturelle pour comprendre

Les concepts structurels de la DB

Et le modèle de données relationnel.

Maintenant, concevons directement une "ville" avec Rails

Et expérimentons directement comment la DB est structurée.


Partie 1. Construire le premier bâtiment dans la ville appelée DB

Dans le terminal:

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

Cette commande peut être interprétée comme suit.

"Je vais construire un bâtiment appelé Building dans la ville (DB).

Le bâtiment a deux attributs: nom (name) et nombre d'étages (floors)."

Rails, sur la base de cette commande,

Construit des bâtiments dans la ville et définit les attributs communs (chambres) pour chaque bâtiment.

Maintenant, dans notre ville,

Il y a un bâtiment appelé Building.


Partie 2. Permettre la création de "chambres" dans le bâtiment

Il doit y avoir des chambres dans le bâtiment

Pour que les gens puissent y vivre,

Pouvoir les louer,

Et pour que la ville ait un sens.

Créons donc une table Room.

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

Cela signifie:

"Crée une chambre appelée Room

Et montre à quelle Building (bâtiment) elle appartient."

Rails crée automatiquement une colonne appelée building_id

Pour relier les chambres au bâtiment auquel elles appartiennent.

C'est la

Relation de la DB.

(Tellement naturel dans la métaphore de la ville qu'il n'est pas nécessaire d'expliquer!)


Partie 3. Apprendre à Rails la "relation entre les bâtiments et les chambres"

app/models/building.rb

class Building < ApplicationRecord
  has_many :rooms
end

app/models/room.rb

class Room < ApplicationRecord
  belongs_to :building
end

Maintenant, Rails comprend complètement.

  • Il y a plusieurs chambres dans le bâtiment

  • Chaque chambre appartient nécessairement à un bâtiment

Dans la métaphore de la ville,

La structure tellement évidente

Est le principe fondamental de la DB.


Partie 4. Construire un "bâtiment" directement dans la console

Dans la console Rails:

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

Ici,

Dans la ville (DB)

Nous avons construit un vrai bâtiment appelé "Star Tower".


Partie 5. Créer des "chambres" dans le bâtiment

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

Maintenant, dans le bâtiment "Star Tower",

Il y a 3 chambres.

À ce moment-là,

La structure de la ville → bâtiment → chambre

Correspond parfaitement à

L'essence structurelle de la DB.


Partie 6. Examinons les chambres

(Comme regarder la liste des chambres d'un bâtiment dans la ville)

b.rooms

Rails demande ainsi.

"Montre-moi toutes les chambres de ce bâtiment!"

La DB

Parmi les millions de bâtiments de la ville

Trouve précisément les chambres appartenant à "Star Tower".

C'est pourquoi la base de données

Est comme un "système administratif de la ville"

Qui peut gérer rapidement et précisément toutes les données des services web modernes.


Partie 7. Trouver des chambres en fonction d'un attribut spécifique

(Sensation de recherche immobilière)

Room.where(size: 33)

Cette commande dit:

"Trouve toutes les chambres de la ville dont la taille est de 33."

Comme chercher des informations sur les chambres en ligne,

La DB sélectionne parmi des milliers, voire des millions,

Les chambres qui répondent aux critères.


Partie 8. Maintenant, le lecteur comprend

"Ah... La DB est une ville,

Les tables sont des bâtiments,

Et les enregistrements sont des chambres, c'est si naturel."

"En fait, construire une ville avec Rails

Aide vraiment à comprendre les concepts."

"Alors je pourrais concevoir les données d'un service web

Comme je conçois une ville !?"

À ce moment-là,

La DB n'est plus une technologie abstraite.

Vous êtes maintenant

Un développeur avec la pensée d'un architecte.

Comments

Add Comment

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

Continuer la lecture

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.