Consultar diverses taules d'un document


En aquest apartat veurem com consultar diverses taules per mostrar dades relacionades.


Més concretament es pretén donar resposta a les preguntes següents:


  • Com podem fer consultes a més d'una taula?
  • Com podem obtenir informació detallada mitjançant consultes addicionals?



Quan comencem a tenir grans volums de dades en les taules és interessant treballar amb vàries taules alhora. Els sistemes d’informació que permeten aquesta funcionalitat s’anomenen Bases de dades.

Les bases de dades estan constituïdes per vàries taules amb informació diversa que es relacionen entre elles mitjançant joins (lligams). Aquests lligams són camps de cadascuna de les taules que coincideixen en les dues taules. Un exemple de lligam entre taules el podem veure en les següents taules (hem afegit un full de càlcul anomenat nivells en el document que hem utilitzat anteriorment):




Hi ha un camp coincident anomenat Nivell tant en la taula d'alumnes com en la taula de nivells. En la taula de nivells el camp Nivell no està repetit, i cada registre ens dóna informació sobre un nivell en concret. En canvi, en la taula d'alumnes, aquest valor estarà repetit tants cops com alumnes tinguem del nivell corresponent. En la taula Nivells el camp Nivell és una clau primària (identifica el registre de forma inequívoca), i en el segon registre l’usarem com a clau forana (identificarà un registre d’una altra taula de forma inequívoca).

Imaginem que ens interessa poder saber dades sobre el nivell que cursa un alumne concret. En l'App que havíem fet en l'apartat Accedir a les dades, inclourem la informació detallada del nivell que cursa l'alumne seleccionat.

En primer lloc modificarem la interfície per adaptar-la a les noves dades que haurem de mostrar. L’aspecte serà el que mostra la imatge, on veiem sis objectes de tipus Label addicionals dins un Table Arrangement que ens permetran mostrar la informació referent al nivell de l'alumne consultat.



En l'App, un cop s'hagi seleccionat l'alumne, iniciarem una segona consulta sobre la taula de nivells. Per indicar que aquesta segona consulta la fem sobre una taula diferent, inclourem el paràmetre from. La consulta seria, doncs:

scriptURL?query=select&from=nivells&where=Nivell&is=

seguit del nom del nivell que cursa l'alumne:

Quan s'han de fer diverses consultes seqüenciades, per evitar múltiples components Web, és convenient fer-ne servir només un i usar una variable auxiliar per saber d'on prové la consulta. En aquest exemple, hem fet servir una variable anomenada origen. En la primera consulta sobre la taula d'alumnes, el valor d'aquesta variable era alumnes, en aquesta segona consulta el seu valor és nivells.

Cal destacar que tenir les dades en diferents taules ens serveix per evitar haver de repetir l’entrada de valors en registres que sabem que seran iguals. Si per cada alumne d’un grup hem d’introduir el nom dels seus mestres estarem emprant molt de temps en entrar dades i ocupant espai amb dades duplicades i possiblement amb errors.