Buon dì

Mi è capitato di dover lavorare su un db non tanto complesso ma abbastanza articolato.

Questo db dovrebbe restituire delle informazioni in base alla lingua scelta.

Per ogni lingua (es. ITA, ENG, ESP) potrebbero esserci più paesi associati (es. ESP può essere sia Spagna che Argentina) ed in base al paese scelto dovrebbero mostrarsi dei prodotti.

Ogni prodotto può essere disponibile sia per un paese che per un altro e per ogni lingua scelta può avere una descrizione dedicata (ITA in italiano, ESP in spagnolo).

Prodotto pippo
disponibile sia per l'italia che per la spagna, non per l'argentina

si entra scegliendo l'argentina, pippo non è presente, si entra scegliendo la spagna, sito sempre in spagnolo ma con pippo presente. Si entra scegliendo l'italia, sito in italiano, pippo presente in italiano.

Fin qui, sebbene sia già abbastanza "irritante" da gestire, se non altro per linearità di relazioni, non ci sono problemi ... mentre ce ne sono per gestire il posizionamento di pippo.

Mettiamo caso che in italia pippo debba essere mostrato al primo posto, mentre in spagna al secondo.

pippo quindi deve essere:
- slegato dalla lingua (se non c'è la descrizione in lingua corrispondente al paese si mostra quella del paese di default, esempio inglese)
- slegato dal paese (può essere mostrato in uno o più paesi ma non in uno o altri paesi)
- legato alla posizione per quel paese, se presente, slegato per posizione, nei vari paesi


io penso di aver trovato una soluzione ma non ne sono del tutto convinto, voi come strutturereste questo insieme di relazioni ?


Grazie