MYSQL baza za multi-dictionary i pozivi?

Imam recimo bazu ovako kreiranu kao na slijedećem linku:

www.i.stack.imgur.com/tmlEi.png (kao novi sam korisnik, pa ne mogu stavljati slike :confused: )

Unutra su podaci npr.:

LANGUAGE
LANGUAGE_ID | LANGUAGE_NAME
1  | 'english'
2  | 'german'
3  | 'spain'

WORD
WORD_ID | LANGUAGE_ID  |  WORD_TEXT
1  | 1 | 'house'   
2  | 1 | 'home'   
3  | 2 | 'haus'   
4  | 3 | 'casa'      

TRANSLATION
WORD_ID1 | WORD_ID2
1  | 3
3  | 1
1  | 4
4  | 1
2  | 3
3  | 2
2  | 4
4  | 2
4  | 3
3  | 4

Malo sam zastranio s bazama pa bi mi trebala pomoć.
Ako netko želi npr prevesti home sa eng na njem koji je najoptimalniji upit?
Jel ovo uopće najbolje dizajnirana baza za tako nešto?

U tablici Translation bi trebao imati polja Word_Id i Language_Id da bi se bolje snalazio. Skica tablice je u redu. A upit bi trebao biti nekako ovako:

SELECT word_text FROM word w, language l, translation t WHERE
w.word_id = 1
AND t.word_id1 = w.word_id2
AND l.language = 1

Mislim da bi nekako tako to trebalo funkcionirati, nisam sad upit uopce isprobavao, napamet napisano ali je upit prilicno jednostavan.

Hvala na odg, ja sam to ovako rješio za sad, sad bi morao vidjeti što je bolje za izvođenje s obzirom na veličinu baza, sad imaju već preko 3mil. zapisa.

  SELECT word_id
FROM (

SELECT word_id2 AS id
FROM translation
WHERE word_id1 =1
UNION
SELECT word_id1
FROM translation
WHERE word_id2 =1

) AS ids, language AS l, word AS w
WHERE l.language_id =1
AND w.language_id =2
AND ids.id = w.word_id

S obzirom na jednostavnost upita ne bih toliko komplicirao, napravi jednostavno jedan explain upit.


Copyright © 2022 WM Forum - AboutContact