Autor Zpráva
unlucky
Profil
Nedávno jsem se tu ptal na to, jak získat data. Nyní bych se chtěl znovu pro jistotu se zeptat, jak na strukturu.

Těch jazyků mám hodně. Každý jazyk cca 40tis slov, každé slovo má cca 4 vyznamy

struktura zatím:

word: id, text
interpreation: id, word_id,meaning_id
meaning: id, text

Přemýšlím, zda hodit úplně vše do těchto 3 tabulek nebo pro každý jazyk/směr vytvořit 3 nové tabulky, tím by se snížil zátěž při různých operací. V případě, že bych použil jenom 3 tabulky, měl bych ve wordu 300 000 a vice záznamů, word-interpretation několik milionů. Nikdy jsem neměl tolik záznamů v databázi a bojím se možných problémů v budoucnu. Tyto data budou na webu
Sir Tom
Profil
unlucky:
Já bych řekl tuto strukturu - jenom 2 tabulky:

t1:
id, word, meaning, language

t2:
word_id, word2_id

Tabulka t1 by byla spojena s tou samou tabulkou t1 přes relaci M:N (za pomoci tabulky t2).

Příklad: v t1 mám tyto řádky:
1, dům, místnost pro bydlení, cs
2, house, a place for living, en
3, la casa, el lugar para vivir, es
4, domov, místnost pro bydlení, cs

v t2:
1,2
1,3
1,4
2,3

Pokud tedy budu hledat výraz "house" - tak mi to zjistí, že tento výraz má id 2 - kouknu do spojovací tabulky a vidím, že k id 2 se váží i pojmy 1 a 3 - kouknu do tabulky t1 a vrátím výrazy pod id 1 a 3...
unlucky
Profil
mám tam ještě u každého slova slovní druh, někde fráze,
U tabulek výše chybí ještě u meaning lang from, lang to a type, kde type je sl. druh, význam či fráze

Každopádně, otázka zní, jestli vytvorčit pro každý jazyk nové tabulky, když je těch záznamů tolik
tiso
Profil
unlucky: záleží ako budeš s tými dátami pracovať. Pokiaľ budeš vypisovať jeden jazyk (významový slovník), tak to so samostatnými tabuľkami pôjde jednoducho, pokiaľ chceš robiť preklady, tak to bude o niečo zložitejšie. Čo chceš vlastne robiť?
Sir Tom
Profil
unlucky:
mám tam ještě u každého slova slovní druh, někde fráze,
U tabulek výše chybí ještě u meaning lang from, lang to a type, kde type je sl. druh, význam či fráze

Co značí meaning lang from? Lang to? To jsou podle mě zbytečné atributy.

Každopádně, otázka zní, jestli vytvorčit pro každý jazyk nové tabulky, když je těch záznamů tolik
Tak si představ, že až bude uživatel hledat výraz "tengo la camisa negra", tak vyhledávací algoritmus se bude muset podívat do všech tabulek - to je pro něho dost blbé... Přitom by stačilo mít jenom jednu velkou a pak tabulku, která bude jednotlivé řádky joinovat.
unlucky
Profil
Sir Tom:
je to slovnik, takze tam budou hledat jenom slova, nikoli fraze. navazuji na tenhle topic
Nejlepsi zpusob jak ziskat data ze souboru

tiso:
zadam slovo v aj, vyjede mi to vyznamy, poznamky, fraze v aj. podobne jako slovniky.centrum.cz
Sir Tom
Profil
unlucky:
Stále to můžeš udělat přes tu tabulku se slovy a joinovací tabulku:

t1 (id, word, lang):
1, pes, cs, ... a další atributy typu významy, poznámky, fráze, ...
2, dog, en
3, el perro, es

t2 (word1_id, word2_id):
1, 2
1, 3
2, 3

Dejme tomu, že uživatel zadá slovo dog a vybere si převod do španělštiny:
SELECT t3.*
FROM t1 
LEFT JOIN t2 ON t2.word1_id = t1.id
LEFT JOIN t1 t3 ON t2.word2_id = t3.id
WHERE t1.word = 'dog' AND WHERE t3.lang = 'es'; // tento příkaz mu vyhodí všechny španělské věci k anglickému slovu dog

zadam slovo v aj, vyjede mi to vyznamy, poznamky, fraze v aj. podobne jako slovniky.centrum.cz
Toto je už dost specifické zadání - uveď nějaké konkrétní příklady - např. pro slovo dům a pro slovo house. Je třeba poznat k čemu se významy, poznámky, fráze budou vázat a v jakém vztahu...

Nejsem si moc jist, zda-li si rozumíme... možná chceš něco jiného, než co chápu já...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0