una tabella con le foto, id_foto etc....
poi una tabella per gli elementi testuali
id_foto (foreing key che punta all'id della tabella di prima), lingua (en/it/de/fr etc..), vari campi testuali nella lingua specificata
primary (id_foto, lingua)
e poi te la giostri facendo il select della lingua che ti serve dalla seconda tabella e un join con la prima... e ti ritrovi la "vista" nella lingua che ti serve... (se una foto non ha il testo tradotto viene semplicemente ignorata :D ) ;)
così è scalabile al massimo... se aggiungi una lingua non devi modificare nulla :D
per questioni di prestazioni il campo "lingua" puoi farlo unsigned int anzichè char(2) e fissare tu una legende: 0 = ita, 1=eng etc. etc. etc.
la soluzione di una tabella per lingua che proponi tu potrebbe andar bene comunque, avresti sicuramente migliori prestazioni (se hai la tabella di testi da 150mb per lingua... e hai 10lingue.. meglio operare su tabelle singole che no su una tabella unica da 1.5gb :D )... però perdi molto in scalabilità e flessibilità...
tipo se un giorno ti trovi con 10 lingue... e dici... spetta che cambio il campo testo e da "text" lo porto a "blob"... li rischi di dimenticarti pezzi per strada... e comunque è una rottura (cambiar tutte le tabelle...) :D
e poi la base di dati che otteresti non è definitiva e va ritocatta ad ogni espansione... invece penso sia + semplice cambiare soltanto un campo del form che fa il submit via php e aggiungere anche l'id lingua=11 sapendo che tutto il resto (la base di dati) poi funzionerà tranquillamente senza preoccuparsi di smanettare sulle tabelle ;)
Ultima modifica di Evcz : 15-12-2005 alle ore 23.41.02
There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...