Die Tabellen:
Der Zweck:
Ich verwende in den Templates einfach einen Eintrag aus der Tabelle phrase (z. B. {{FORM_SEND}}) und es steht, je nachdem, was der Benutzer für eine Sprache gewählt hat, entweder "Absenden" oder "Submit" oder irgendwas anderes da.
Das Ziel:
Mit einem SELECT phrase_name und Übersetzung in der vom Benutzer ausgewählten Sprache laden, falls ein Eintrag in dieser Sprache nicht verfügbar ist, soll automatisch die Standardsprache eingreifen. Falls der Eintrag weder für die gewählte SPrache noch für die Standardsprache gepflegt ist, wird halt nichts ausgegeben, bzw. einfach nur {{FORM_SEND}} (Beispiel)
Das SELECT:
Die 2 ist die ID der vom Benutzer gewählten Sprache, die 1 steht für englisch.
Das EXPLAIN:
Die Frage:
Mir gefallen die vielen NULLS nicht, kann man da was tun?
Code:
language language_id PK auto_increment language_name UNIQUE phrase phrase_id PK auto_increment phrase_name UNIQUE translation translation_ID PK auto_increment phrase_ID FK language_id FK translation_text TEXT
Ich verwende in den Templates einfach einen Eintrag aus der Tabelle phrase (z. B. {{FORM_SEND}}) und es steht, je nachdem, was der Benutzer für eine Sprache gewählt hat, entweder "Absenden" oder "Submit" oder irgendwas anderes da.
Das Ziel:
Mit einem SELECT phrase_name und Übersetzung in der vom Benutzer ausgewählten Sprache laden, falls ein Eintrag in dieser Sprache nicht verfügbar ist, soll automatisch die Standardsprache eingreifen. Falls der Eintrag weder für die gewählte SPrache noch für die Standardsprache gepflegt ist, wird halt nichts ausgegeben, bzw. einfach nur {{FORM_SEND}} (Beispiel)
Das SELECT:
Code:
SELECT p.phrase_name, IFNULL(t.translation_text, st.translation_text) translation_text FROM phrase p LEFT JOIN translation st ON p.phrase_id = st.phrase_id AND st.language_id = 1 LEFT JOIN translation t ON p.phrase_id = t.phrase_id AND t.language_id = 2
Das EXPLAIN:
Code:
+-------+--------+---------------+-------------+---------+-------------------+------+-------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+--------+---------------+-------------+---------+-------------------+------+-------+ | p | ALL | NULL | NULL | NULL | NULL | 39 | | | st | eq_ref | language_id | language_id | 8 | const,p.phrase_id | 1 | | | t | eq_ref | language_id | language_id | 8 | const,p.phrase_id | 1 | | +-------+--------+---------------+-------------+---------+-------------------+------+-------+ 3 rows in set (0.00 sec)
Mir gefallen die vielen NULLS nicht, kann man da was tun?