Kakšno tabelo za slovar ?

Tako, pač zadevca ki je trenutno delam, bo beležila besede ki jih uporabi, da jih drugič hitreje pobere z baze in je ne rabi iskat na internetu, v gavnem bo zadeva taka da bojo v bazi samo sopomkenke, torej samo besede brez opisov pa vse ... samo v vsaki vrsti besede ki so sopomenke ...

seda nastane problem ... katera vsa polja naj naredim za posamezen row ? Id seveda, naprej pa nevem, glede na to da ima lahko beseda neomejeno sopomenk ? Ali naj naredim samo Id, pa potem noter besede ločene z vejico, pa z explode ... vendar bi potem iskanje po bazi ZELO trajalo ...

Kako bi še lahko najlažje sestavil tako tabelo ?

18 odgovorov

Vini, lepo prosim če bi dal kak link do strani kjer bi si lahko to prebral v Angleščini ali Slovenščini, ker mi ni več nič jasno ... :(

Sem našel te relacijske tabele v knjigi, čeprav rešitev ki katero sem mislil uporabit, oz. ko bom nadaljeval, če bom ...

da bi imel

id | id2 | beseda

sopomenke bi pač mele isto število pod id2, id je unikaten, beseda pa tudi, pač vsaka v svojo vrstico.

Pomoje bi to veliko bolj elegantno resil z uporabo dveh tabel...

prva:

CREATE TABLE besede (
id INT NOT NULL AUTO_INCREMENT,
beseda TEXT
);

CREATE TABLE sopomenke (
besedaid INT,
sopomenka
id INT
);

Razumes, na kaj namigujem, ali govorim naprej?

Hmm, v eni so besede, z idji, v drugi pa ? Id besede in sopomenke ? S tem da mam potem tabelo sopomenke hitro zelo veliko, za 8 sopomek bi to bilo 7 ? 8 ? vrstic ?

Seveda je tabela sopomenke hitro zelo velika, vendar ne velika v bajtih, na zapis imas namrec le dva integerja. Zakaj te pa moti velika tabela? Pazi, jaz pri kreiranju tabel nisem kreiral indeksov, to ti je verjetno jasno, da jih potrebujes, kajne?

Zelo dobro bi bilo seveda tudi imeti polje beseda tipa VARCHAR, ker potem lahko uporabis unique index, ki ti zagotovi, da se nobena beseda ne pojavi v tabeli dvakrat.

Kar hocem reci je to, da ti nisem podal zakljucene resitve, le okvirno strukturo tabel.

Ja, hvala ;), sedaj razumem oba načina, projekt s sinonimi pa je itak v stanju "pause", naletel sem na problem, da če daš noter input recimo 1000 besed, pa spustiš skoz, pa dokler nebom mel zelo velike baze bo to sinonimiziranje ZELO trajalo da se vsaka beseda pobere s spleta ...

Druga verzija bi bila da bi že na začetku importal bazo, dev, tri ali več ... pa žal nobene pametne nisem našel ... tako da bom najprej uredil "lepe" zadeve pa potem k tem "temnin" :).

PS: Še enkrat hvala za razlago :D ;).

Ni problema, pa se kdaj :)