webForumDet fria alternativet

Hantering av översättningar - tabellstruktur och SQL-frågor

0 svar · 324 visningar · startad av jme

jmeMedlem sedan maj 20012 237 inlägg
#1

Hej.

Jag håller just nu på med att skapa en funktion där man kan lagra översättningar på förklaringar till de moduler som är installerade i systemet.
Idén är att till en början så kör jag med finska men senare så kommer eventuellt andra språk till i fråga (engelska och svenska). Jag vill skapa ett grnssnitt där användaren får en tabell på alla nyckelord samt kolumner för varje installerad språk. Tanken är att man med tiden kan fylla i de celler i kolumnen som för tillfället är tomma och saknar en översättning.

Exempel:

http://www.webforum.nu/attachment.php?attachmentid=19165&stc=1

Användaren kommer även att kunna välja, vilka språk som skall tas i beaktningen vid sökningen samt om användaren vill se alla poster eller bara de, som saknar en översättning.

Just nu har jag följande struktur:

module:
- module_id (PK, int)

modulerow:
- modulerow_id (PK, int)
- module_id (FK (module.module_id), int )

modulerow_description:
- id (PK, int)
- modulerow_id (FK (modulerow.modulerow_id), int)
- shortdescription (varchar)
- fulldescription (text)
- language

Just nu har jag följande SQL-sats:

SELECT 
	mr.id,
	(SELECT md1.shortdescription FROM modulerow_description AS pd1 WHERE pd1.modulerow_id = pr.id AND pd1.language = 'sv'),
	(SELECT md1.shortdescription FROM modulerow_description AS pd1 WHERE pd1.modulerow_id = pr.id AND pd1.language = 'en')
	-- eventuellt då liknande rader fast med pd1.langauge = 'fi' osv osv
FROM
	modulerow AS mr LEFT JOIN modulerow_description AS md ON mr.modulerow_id = md.modulerow_id
	LEFT JOIN module AS m ON mr.module_id = m.module_id
GROUP BY
 	mr.id;

Detta verkar fungera men på nått sätt så tycker jag SQL-frågan inte är den bästa. Vill jag lista ALLA språk och ALLA moduler så måste jag för närvarande lägga till varje språk som en inner query. Finns det några alternatvi eller är det såhär jag måste göra?

Tar gärna emot förslag på förbättringar på både tabellstrukturen och SQL-fårgorna. :)

tabell.jpg
132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)