Pensa ara quina estructura de camps o columnes ha de tenir la teva taula d'articles. Com cada registre ha de contenir totes les dades d'un article del portal, has de decidir quina informació t'interessa desar de cadascun dels articles.
Et proposem el següent esquema. Cada fitxa o registre ha de contenir, com a mínim, els següents
1) Un camp ha de contenir el número de l'article. És millor numerar els articles perquè facilita la feina de gestió. A la màquina li és més senzill localitzar, per exemple, l'article 1525 que haver de buscar seguint altres criteris. A més a més, aquest número ha de ser únic a tota la taula: No ha de ser possible que dos articles tinguin el mateix número d'identificació!
2) Un camp ha de portar la data en què es va enregistrar l'article. Necessitarem aquest camp per a fer ordenacions cronològiques.
3) Un tercer camp ha d'enregistrar el 'nick' de l'usuari redactor. Aquest camp no ha de ser únic a la taula perquè sinó cada autor només podria escriure un sol article. 4) Un altre camp ha de contenir el títol de l'article.
5) El darrer camp ha de contenir tot el text del propi article.
Aquesta és l'estructura mínima de la taula d'articles. Més endevant la prodràs ampliar o modificar.
Ara ja pots crear físicament la taula. Recorda que havies obert el MySQL Query Browser | Botó dret sobre la base de dades 'agencia_noticies' | Create New Table:
1) A Table Name escriu el nom de la taula: articles.
2) Ara crearàs l'estructura de camps de la taula. Es van afegint a la graella que hi ha a la pestanya 'Columns and Indices'. Cada fila d'aquesta graella conté la definició d'un camp, amb el seu nom, el tipus de dades que conté (numèrics, cadenes, etc) i altres dades.
- Fes doble-clic sobre la primera entrada de la graella "Columns and Indices", per sota de l'etiqueta "Column Name". Escriu ID. Aquest camp servirà per a desar el número assignat a l'article.
Observa que, immediatament després d'escriure el nom, el programa
ha completat automàticament la definició del camp:
- tria el camp com a enter (INTEGER),
- no permet que tingui un valor nul (l'article ha de tenir codi numèric per força, sinó no el podriem identificar),
- és un enter autoincremental (a nosaltres no ens cal assignar el número a l'article, el MySQL ja en portarà la comptabilitat i ho farà per nosaltres) i
- el camp està marcat com a camp clau (observa la clau groga que hi ha a l'esquerra del camp). Això vol dir que ID és la identificació única de l'article a la taula. En llenguatge de bases de dades es diu que el camp ID és la clau primària de la taula.

Continua entrant les definicions seguint el model d'aquesta fitxa:

- Afegeix un camp amb la data de gravació del registre que es digui DATA i sigui del tipus TIMESTAMP.
- Afegeix un camp amb el nom AUTOR. Desarà el 'nick' del redactor. A tipus de data escriu VARCHAR(50) que vol dir que contindrà cadenes de longintud variable i fins a 50 caràcters.
- Per al títol farem un camp que permeti cadenes més llargues. Es dirà TITOL i serà del tipus VARCHAR(250).
- Finalment crea un camp per a posar tot el contingut de l'article dins. S'ha de dir CONTINGUT i serà del tipus MEDIUMTEXT. El tipus MEDIUMTEXT et deixarà guardar articles fins aproximadament unes 5000 pàgines.
Opcionalment pots crear un grup d'indexs per a la taula. Els índexs serveixen per a accelerar la recerca de dades en una taula.Tots els camps susceptibles de recerca s'han d'indexar perquè l'eficacia de les recerques es multipliquen per més de mil. Com pots necessitar buscar articles per autor, data i títol hauries de crear tres índexs, a més de l'index PRIMARY que ha estat creat automàticament pel MySQL al fer el camp ID.
- A la pestanya Indices, veuràs a l'esquerra un signe + i un signe -. Serveixen per afegir i esborrar índex. Pica sobre el signe +, et sortirà una finestra amb un nom d'index. Pica sobre el botó 'OK'.
- A la dreta de la pestanya Indices tens una caixa que porta el nom Index Columns. Tria el camp DATA a la graella de camps i estira'l fins posar-lo dins la caixa. Ja has creat l'índex.
- Repeteix l'operació creant índexs per als camps AUTOR i TÍTOL.
Amb aquesta operació ja has completat la definició de la taula. Pica sobre el botó 'Apply Changes'. El programa et demana la confirmació dels canvis:

Pica sobre el botó 'Execute' i tanca l'editor de taules.
Finalment, prova el funcionament de la taula inserint, actualitzant, consultant i esborrant un registre.
1) Assegura't que tens la base de dades agencia_noticies activa: en el navegador de bases de dades (schemata) ha d'estar en negreta. Si no ho està, fes doble-clic sobre el seu nom.
2) A la caixa d'entrada de comandes, a la part superior del programa, escriu la següent sentència:
insert into articles (autor,titol,contingut)
values ('reverte','Cròniques de guerra','Contingut de l''article')
3) Pica sobre el botó verd 'Execute', a la dreta de la caixa.

Amb això has inserit un registre a la taula.
4) Ara demanaràs que el MySQL et faci una llista amb tots els articles de la taula. Ara només n'has de trobar un. Escriu a la caixa de comandes:
select * from articles
i pica sobre el botó 'Execute'. Has d'obtenir aquesta resposta:

Observa que et retorna un article que porta l'ID número 1 (assignat automàticament pel MySQL) amb la data i hora de gravació (també assignades pel servidor) i amb l'autor, títol i contingut que has decidit a la sentència anterior.
5) Ara canviaràs el títol de l'article. Es diu 'Cròniques de Guerra' i el vols transformar en 'Territorio Comanche'. Escriu a la caixa de comandes la següent sentència:
update articles set titol='Territorio Comanche' where id=1
Pica sobre el botó 'Execute'. Repeteix el pas 4) per a verificar que el seridor ha fet la modificació.
6) Finalment, esborraràs el registre. Escriu i executa la següent sentència:
delete from articles where id=1
Les sentències que has anat escrivint utilitzen l'SQL, un llenguatge que, amb algunes variants, entenen d'una manera similar tots els motors de dades (Oracle, DB2, MySQL, Postgress, Interbase ...). Si penses treballar amb bases de dades et recomanem que t'estudïis d'entrada algun manual o tutrial d'SQL. Et resultarà imprescindible en programació web.
Per a concluir la pràctica, crearàs una nova taula. En ella portaràs el registre de dades dels redactors autoritzats a publicar a la teva web: el nom i cognoms, el nick i la clau d'accés.
La taula es dirà 'autors' i l'estructura de camps ha de ser la següent:
1) El primer camp s'ha de dir AUTOR ha de ser un VARCHAR(50). El programa et suggerirà que sigui INTEGER. Canvia-ho a VARCHAR(50) però manté el camp com a clau primària (comprova la presència de la petita clau groga al costat del nom del camp). En aquest camp desaràs el nick de l'autor.
2) Afegeix tres camps de tipus VARCHAR(50) que es diran respectivament NOM, COGNOM1 i COGNOM2. Han de contenir el nom i cognoms dels redactors del portal.
3) El cinquè camp es diu ACTIU. Aquí enregistraràs si el redactor és actiu en el sistema (ens pot convenir treure els drets de publicació a algun dels redactors). Com en MySQL no existeix directament un camp lògic, el crearàs en format TINYINT(1). Un petit camp enter. El valor 1 voldrà dir que el redactor és actiu i el valor 0 voldrà dir que és inactiu.
5) El darrer camp es diu CLAU. Porta la contrassenya del redactor per a accedir a l'eina de publicació del portal. Fes-la en forma de VARCHAR(10).
Inserta una plantilla mínima de redactors a la taula. Executa les següents sentències amb el Query Browser:
insert into autors (autor,nom,cognom1,cognom2,actiu,clau) values ('reverte','Arturo','Pérez','Reverte',1,'trafalgar')
insert into autors (autor,nom,cognom1,cognom2,actiu,clau) values ('obrian','Richard','Patrick','Russ',1,'surprise')
|