Come leggere i dati da una tabella relazionale Marzo 2009- Prof. Silvano Natalizi
<ul><li>Quando Rails legge le righe di una tabella relazionale, converte ciascuna riga in un oggetto. </li></ul><ul><li>I ...
 
<ul><li>Un record ha molti campi con dati in ciascuno di essi. </li></ul><ul><li>Come fanno tutti questi dati ad essere me...
<ul><li>L’oggetto @voti esattamente combacia con il record del database </li></ul><ul><li>Ciò è importante perché questo o...
 
 
<ul><li>Una pagina indice ha la lista di tutti i record della tabella. </li></ul><ul><li>Ogni riga della pagina è una riga...
<ul><li>La pagina indice necessita dei dati da tutti i record della tabella relazionale </li></ul><ul><li>Il codice del co...
<ul><li>Come fa il controllore a leggere tutti gli oggetti del modello e ad inviarli alla view? </li></ul><ul><li>Voti.fin...
<ul><li>Invece di restituire un oggetto contenente i dati di un singolo record, il metodo find crea tanti oggetti, uno per...
 
 
 
<ul><li>Un libro bellissimo </li></ul><ul><li>An amazing book : </li></ul><ul><li>Head First Rails : </li></ul><ul><li>Ore...
Upcoming SlideShare
Loading in …5
×

Lezionerubyonrails Lettura

524 views

Published on

come leggere i dati da una tabella relazionale e caricarli in memoria. Object relational mapping

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
524
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lezionerubyonrails Lettura

  1. 1. Come leggere i dati da una tabella relazionale Marzo 2009- Prof. Silvano Natalizi
  2. 2. <ul><li>Quando Rails legge le righe di una tabella relazionale, converte ciascuna riga in un oggetto. </li></ul><ul><li>I dati dei campi della riga sono convertiti negli attributi dell’oggetto creato </li></ul><ul><li>L' Object-Relational Mapping ( ORM ) è una tecnica di programmazione per convertire dati fra RDBMS e linguaggi di programmazione orientati agli oggetti </li></ul>
  3. 4. <ul><li>Un record ha molti campi con dati in ciascuno di essi. </li></ul><ul><li>Come fanno tutti questi dati ad essere memorizzati in un singolo oggetto? </li></ul><ul><li>La risposta è che un oggetto ha parecchi attributi. </li></ul><ul><li>Un attributo di un oggetto è come un campo di un record di una tabella relazionale </li></ul><ul><li>Ha un nome ed un valore </li></ul><ul><li>Quando Rails legge il valore voto dal record nel database, lo immagazzina nell’attributo @voti.voto dell’oggetto @voti. </li></ul><ul><li>La stessa cosa avviene per gli altri campi del record. </li></ul>
  4. 5. <ul><li>L’oggetto @voti esattamente combacia con il record del database </li></ul><ul><li>Ciò è importante perché questo oggetto in memoria è visibile dal codice della view! </li></ul><ul><li>I dati sono in memoria e la pagina web li può vedere </li></ul><ul><li>La pagina show.html.erb dispone di questi dati. </li></ul>
  5. 8. <ul><li>Una pagina indice ha la lista di tutti i record della tabella. </li></ul><ul><li>Ogni riga della pagina è una riga della tabella con alcuni dei suoi campi </li></ul><ul><li>È utile avere una pagina web così fatta, per permettere ai navigatori di avere una visione globale dei dati disponibili e quindi magari di esaminare in dettaglio quello al quale sono interessati </li></ul>
  6. 9. <ul><li>La pagina indice necessita dei dati da tutti i record della tabella relazionale </li></ul><ul><li>Il codice del controllore viene eseguito solo una volta prima che la pagina web sia mostrata. </li></ul><ul><li>Pertanto tutte le righe della tabella devono essere lette completamente in un colpo solo prima che sia mostrata la view </li></ul>
  7. 10. <ul><li>Come fa il controllore a leggere tutti gli oggetti del modello e ad inviarli alla view? </li></ul><ul><li>Voti.find(:all) è un metodo finder che legge tutti i record in un colpo solo. </li></ul><ul><li>Il modello restituisce un solo oggetto che contiene i dati di ogni record della tabella </li></ul><ul><li>Il controllore può assegnare questo oggetto ad una singola variabile </li></ul><ul><li>Ma come può assegnare tutti questi dati con un numero sconosciuto di riche ad un singolo oggetto ? </li></ul><ul><li>Che cosa è questo oggetto ? </li></ul>
  8. 11. <ul><li>Invece di restituire un oggetto contenente i dati di un singolo record, il metodo find crea tanti oggetti, uno per ciascun record e li coagula in un unico array </li></ul><ul><li>Voti.find(:all) restituisce un singolo array </li></ul><ul><li>Questo array contiene tanti model objects quante sono le righe della tabella del database </li></ul><ul><li>La view invece di vedere un numero sconosciuto di modelli d’oggetti in memoria, ha a che faro solo con un array per ottenere l’accesso a tutti gli oggetti. </li></ul>
  9. 15. <ul><li>Un libro bellissimo </li></ul><ul><li>An amazing book : </li></ul><ul><li>Head First Rails : </li></ul><ul><li>Oreilly </li></ul><ul><li>David Griffiths </li></ul>

×