Autor Zpráva
meca
Profil
Zdravim,

již to tu jednou bylo. Tenkrát jsem to nějak vyřešil; tak provizorně, že mě to již nestačí.

Trochu se změnily podmínky, tudíž to zkusím ještě jednou:

Potřebuji fci, která mi řekne, zda jeden z 2 000 záznamů v databázi se "hodí" k jednomu z 10 000 záznamů v XML souboru. Všechno je tak nějak vyřešeno - stačí mi tedy pouze princim, jak mohu porovnat delší řetězec plný balastu s dvou nebo tří slovním řetězcem v databázi.

Nejlepší by as bylo porovnávat ten kratší řetězec z databáze s tím delším z XML souboru.. Jenže:

(10 000 záznamů v XML * 2 000 v databázi) * min. 15 XML souborů = 300 000 000 dotazů - to je asi moc, co :-/

No, prostě jsem marný. Nemáte někdo nějakou ideu? Děkuji mockrát.
Pavel Strejček
Profil
Co ten XML naklopit už bez balastu vždy do databáze. Porovnání v DB by neměl být takový problém (JOIN a spol.).
meca
Profil
Pavel Strejček
Jastný, jenže jak se toho balastu zbavit? Člověk, který nikdy neviděl XML výstup na zboží od e-shopů nemůže ani tušit, o čem mluvím - neuvěřitelné, co oni všechno dokáží považovat za "oficiální název produktu"... :-(

Těch slov, který bych musel filtrovat je strašně moc. Teď jich mam skorem 100 a zdaleko to nestačí.
Pavel Strejček
Profil
No, nějakou představu o těch e-shopech a jejich XML mám. ;-)

Tady záleží taky na tom jak často se to má dělat. Předpokládám, že buď CRONem, nebo nějak v adminu při importu zboží? Napiš víc podrobností.
Pavel Strejček
Profil
Jinak porovnat 100 slov je sranda, když se to nebude dělat při každém zobrazení stránky návštevníkem. A to doufám, že né. :-)
Pavel Strejček
Profil
meca
Jenže jak se toho balastu zbavit?

Tím balastem jsem já myslel věci, které nejou zapotřebí k porovnání - XML značky a různá omáčka. Toho se zbavíš jednoduše.
meca
Profil
Pavel Strejček
Jastný, jastný; to mě nenapadlo. Jenže IMHO když naházím všechno do DB, tak se mi nic neulehčí, ne? Pač prostě beztak to budu muset nějak porovnávat a absolutně netušim, jak to to myslíš s tím JOIN a spol... :-/

No jinak - je to vskutku pomocí CRONu jednou denně. A... nic užitečnýho navíc mě teď bohužel nenapadá. ;(
llook
Profil
Určitě první věcí bude data z těch XML souborů nacpat do databáze, jak píše Pavel Strejček, protože pak se s tím lépe pracuje.
Další věcí bude vyvinout způsob, jak záznamy z tabulky "zboží v obchodech" přiřadit k záznamům v tabulce "moje databáze zboží".

Něco mě napadlo. Zjednoduším to tak, že od každého zboží známe pouze ID a titulek, nic víc. Pak by se dala udělat taková prasárna, která by ale mohla fungovat:

CREATE TABLE zbozi_v_obchodech (
id INT PRIMARY KEY auto_increment,
title VARCHAR(255)
);
CREATE TABLE moje_databaze_zbozi (
id INT PRIMARY KEY auto_increment,
title VARCHAR(255),
word1 VARCHAR(255), word2 VARCHAR(255), word3 VARCHAR(255), a tak dále (řekněme třeba 20 sloupců)
);

S tím, že ke každému názvu v moje_databaze_zbozi by se uložilo ještě každé slovo z názvu zvlášť (například INSERT INTO moje_databaze_zbozi (title, word1, word2) VALUES ('Alfons Moucha', 'Alfons', 'Moucha');).

A přiřazení by bylo:
SELECT ... FROM zbozi_v_obchodech AS zo
JOIN moje_databaze_zbozi AS mdz
ON zo.title LIKE mdz.word1 AND zo.title LIKE mdz.word2 AND zo.title LIKE mdz.word3 a tak dál.


Je to jenom takový nápad, třeba to někoho postrčí k lepšímu nápadu.
meca
Profil
llook
Ty vogo. Zní to naprosto šíleně - zkusim to -;) Dik...

Btw, existuje nějaké DISLIKE ve SQL? Abych naopak mohl nějaké slova vyřadit?
nightfish
Profil
meca
not like '%neco%' and not like '%necojineho%' ...
Toto téma je uzamčeno. Odpověď nelze zaslat.