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. :)
