Autor | Zpráva | ||
---|---|---|---|
whoami Profil |
#1 · Zasláno: 12. 12. 2012, 19:59:31
Zdravím,
mohu se optat či mi někdo neporadí jak na můj problém? Dejme tomu že mám 3 tabulky: Země id název Jazyky id kód Překlady id země_id jazyk_id překlad Obsah je například: Země: 1,Česká Republika Jazyky: 1,en 2,sk Překlady: 1, 1, 1, Czech Republic 2, 1, 2, Česká Republika A jádro mého pudla je v tom, že bych potřeboval dotaz, který vrátí výsledek v podobě: id(země), název(země), název_en(z překladů a pokud není tak NULL), název_sk(z překladů a pokud není tak NULL) - [název_"kód"] 1, Česká Republika, Czech Republic, Česká Republika A tento dotaz by měl podporovat přidání jazyka do tabulky k tomu určené a automaticky přidat sloupec (dynamicky).. Velice děkuji za nápady. |
||
Kajman Profil |
#2 · Zasláno: 12. 12. 2012, 21:22:32
SELECT z.id, z.nazev, en.preklad nazev_en, sk.preklad nazev_sk FROM zeme z LEFT JOIN preklady en ON z.id = en.zeme_id AND en.jazyk_id = 1 LEFT JOIN preklady sk ON z.id = sk.zeme_id AND sk.jazyk_id = 2 Po přidání jazyka musíte dotaz (view) upravit. |
||
whoami Profil |
Kajman:
Takto to není problém udělat.. jenže těch tabulek je zaneseno tolik že je vždy problém upravit takové množství view.. aplikace již dynamicky udělaná je a proto jsem přemýšlel zda si pomocí nějakého lepšího (i na úkor rychlosti) zápisu nemohu práci ulehčit.. |
||
Tori Profil |
whoami:
Pokud smí mít DB uživatel odpovídající oprávnění (na změnu view), můžete si (v PHP) views automaticky přegenerovávat po přidání/odebrání překladu. |
||
Kajman Profil |
#5 · Zasláno: 12. 12. 2012, 23:19:39
Nebo si udělejte v aplikaci tři jednoduché dotazy na obsah tabulek a seskládejte těch víc sloupců až v aplikaci.
|
||
whoami Profil |
Tori, Kajman:
Oboje je možné.. nejspíš to tak bude muset být.. jen jsem chtěl zjistit, či není možné automatizovat tento proces.. + se vyhnout: AND en.jazyk_id = 1 (konkrétní id) prostě něco ve stylu SELECT zeme.id, zeme.nazev, (SELECT jazyků + něaký concat či něco) FROM zeme... aby to bylo absolutně dynamické a bez fixních věcí jako jsou id jazyků atp.. |
||
Časová prodleva: 11 let
|
0