Mysql
 sql >> Database >  >> RDS >> Mysql

Progettazione di database MySQL con l'internazionalizzazione

Il modo più comune in cui ho visto questo fatto è con due tabelle, membership e membership_ml , con una che memorizza i valori di base e la tabella ml che memorizza le stringhe localizzate. Questo è simile alla tua seconda opzione. La maggior parte dei sistemi che vedo in questo modo sono realizzati in questo modo perché non sono stati progettati pensando all'internazionalizzazione sin dall'inizio, quindi le tabelle _ml extra sono state "agganciate" in seguito.

Quella che penso sia un'opzione migliore è simile alla tua prima opzione, ma un po' diversa. Avresti una tabella centrale per archiviare tutte le traduzioni, ma invece di inserire il nome della tabella e il nome del campo, utilizzeresti i token e una tabella "Contenuto" centrale per memorizzare tutte le traduzioni. In questo modo puoi applicare una sorta di RI tra i token nella tabella di base e le traduzioni nella tabella Contenuto, se lo desideri.

In realtà ho posto una domanda su questa cosa qualche tempo fa, quindi puoi dare un'occhiata a quello per qualche informazione in più (piuttosto che ripetere gli esempi di schema qui).