Salve a tutti,
sto realizzando un applicazione multilingua e sto adottando la struttura DB di seguito:
codice:
CREATE TABLE article (
        id INT UNSIGNED AUTO_INCREMENT NOT NULL,
        last_update INT UNSIGNED NOT NULL,
        PRIMARY KEY(id)
);

CREATE TABLE article_data (
        article_id INT UNSIGNED NOT NULL,
        language_id INT UNSIGNED NOT NULL,
        description TEXT NOT NULL,
        name VARCHAR(128) NOT NULL,
        INDEX(article_id, language_id)
);

CREATE TABLE languages (
        id INT UNSIGNED AUTO_INCREMENT NOT NULL,
        language CHAR(2) NOT NULL,
        country CHAR(2) NOT NULL,
        INDEX (language, country),
        PRIMARY KEY(id)
);
Questo modello l'ho trovato proprio qui sul forum e continuando le ricerche sul web ho visto che si tratta comunque di una soluzione ormai ampiamente applicata e logicamente ben fatta.

Il mio dubbio riguarda la fase di estrazione dei dati.
Non so come scrivere la query per ottenere i dati degli articoli in una lingua di default (es. italiano) se non sono presenti nella lingua con cui l'utente sta visualizzando il sito.

Parto da questa query base:
codice:
SELECT ....
FROM article_data data, languages lang, article art
WHERE art.id = [$article_id]
AND lang.id = [$lang]
AND data.article_id = art.id
AND data.language_id = lang.id
Con questa query se l'articolo richiesto non è presente nella lingua selezionata la query restituisce un insieme vuoto. Secondo voi come posso manipolarla per restituire comunque il risultato in una lingua che definisco di default?