àˆ importante tener presente che, quando si deve realizzare un'applicazione, cià che conta per progettare la struttura di un database non è tanto il numero di tabelle e colonne che verranno utilizzate per l'archiviazione dei dati, ma il numero e la qualità delle relazioni che sarà possibile stabilire tra le diverse tabelle.
Più il prodotto finito permetterà di relazionare le tabelle, minore sarà il lavoro e più semplici le fasi di implementazione; una struttura ben relazionata al suo interno consentirà anche di rendere più agevoli eventuali operazioni di aggiornamento. Accade spesso che al CMS di base debbano poi essere aggiunte funzionalità accessorie sulla base delle esigenze che possono presentarsi in fase di produzione.
Difficilmente è possibile creare strutture di relazione ben concepite senza una conoscenza approfondita del linguaggio SQL.
Facciamo un semplice esempio relativo ai blog; questa tipologia di siti Web necessita infatti di stabilire numerose relazioni: categorie con articoli, articoli con commenti e via dicendo. Alcune relazioni sono solitamente interne alla stessa tabella, si pensi a quella tra articoli e date, altre coinvolgono più tabelle; per questo secondo caso un classico esempio è quello relativo alla relazione tra articoli e commenti.
Ora immaginiamo di voler estrarre i 10 articoli più commentati del nostro blog con una sola query, è possibile? Si, grazie ad una semplice relazione basata sugli Id:
SELECT *, COUNT(id_articolo) as conta
FROM articoli, commenti
WHERE articoli.id_articolo = commenti.articolo_id
AND commenti.attivo='1'
AND articoli.attivo='1'
GROUP BY commenti.articolo_id
ORDER BY conta DESC LIMIT 10;
Questa interrogazione mette in relazione 2 tabelle ("articoli" e "commenti") ed estrae tutti i commenti relativi agli ultimi 10 articoli, li conta, li raggruppa e poi riordina gli articoli in senso decrescente sulla base del numero dei commenti.
Lo stesso si può fare per mettere in relazione due tabelle destinate a contenere i riferimenti a "categorie" e "sottocategorie", sarebbe possibile per esempio selezionare tutte le sottocategorie corrispondenti alle categorie principali e ordinare queste sulla base del numero delle sottocategorie che fanno riferimento ad esse.
Un semplice esempio che sottolinea l'importanza di creare relazioni utili tra tabelle sfruttando una buona conoscenza del linguaggio SQL.