Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Seskupení tří tabulek

MD1
verified
rating uzivatele
18. 1. 2014 14:25:30
Zdravím, mám tři tabulky:
produkt
pojem
članek
každý řádek má své unikátní ID v rámci své tabulky, klasika. Co potřebuju je sesypat data z těch tří tabulek do jedné ve formě:
Sloupec TYP může být samozřejmě číselník. Názvy tam jsou pro přehlednost.
Sloupec TEXT bude obsahovat data z jednoho čí více sloupců z patřičné tabulky a bude se v něm hledat (like či fulltext bude-li to možné). Příklad - z tabulky pojem to budou slopce `nazev` + `klicova_slova`.
Jak řešit tento problém? Další (dočasnou/klasickou) tabulkou nebo pohled s eventy on update, on insert či jak?
A dále jak ošetřit identifikátory v té "nové tabulce"? Bude třeba tam vytvořit nové id, ponechat stávající + typ aby bylo možné najít původní záznam?
18. 1. 2014 14:25:30
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987096
Není vůbec jasné, jaký mají tabulky k sobě vztah.
Pošlete schéma všech tabulek.
18. 1. 2014 14:51:59
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987095
MD1
verified
rating uzivatele
18. 1. 2014 17:11:15
Tabulky mezi sebou nemají žádný vztah, mimo to že některé mají komentáře, kategorie atd. Ale to je pro tenhle účel nepodstatné. To jestli budou mít s výslednou tabulkou vzah je otázkou (bude-li to tabulka a ne pohled).
Id a skore jsou integer, zbytek varchar. Struktura takto:
18. 1. 2014 17:11:15
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987094
Pokud k sobě nemají žádný vztah, proč a jak je chcete získat v jedné tabulce?
Obecně se tabulky spojují vedle sebe pomocí JOIN, přes společný klíč, nebo za sebou pomocí UNION.
18. 1. 2014 17:59:08
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987093
MD1
verified
rating uzivatele
18. 1. 2014 19:56:32
Omlouvám se, měl jsem asi začít účelem.
Data budou pro vyhledávač resp. našeptávač. Mohl bych to řešit na aplikační urovni, ale rád bych to měl zmáknute na urovni databáze.
Zobrazuju prvních 8 relevantních položek. Problém je, že se první prohledá jedna tabulka, pokud nenajde 8 relevantních záznamů, tak mrkne do druhé a nakonec do 3.
Pokud ovšem najde 8 položek hned v první tabulce, tak na ostatní se už nedostane.
Proto chci mít sesypané data v jedné tabulce (příp. pohledu) a zamezit tak znevýhodnění. Join a union nelze, jelikož tabulky mají rozdílné názvy sloupců a nejsou spojeny FK.
18. 1. 2014 19:56:32
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987092
Jak plánujete určit pořadí relevance? To je natvrdo v tom sloupci `skore`?
18. 1. 2014 22:09:27
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987091
MD1
verified
rating uzivatele
19. 1. 2014 03:42:10
Ano, základ je aby ve sloupci `text` bylo nalezeno slovo, nebo jeho začátek (zatím přes LIKE, ale to je druhotný problém, alespoň doufám) a výsledky budou seřazeny dle `skore`, které se určuje dle počtu shlédnutí, komentářů, objednávek ap. Přirovnal bych k to k facebookovému našeptávači, kdy se hledá v přátelích, přátelé přátel, skupin, lidí ap.
19. 1. 2014 03:42:10
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987090
MD1
verified
rating uzivatele
20. 1. 2014 16:02:26
Ano, základ je aby ve sloupci `text` bylo nalezeno slovo, nebo jeho začátek (zatím přes LIKE, ale to je druhotný problém, alespoň doufám) a výsledky budou seřazeny dle `skore`, které se určuje dle počtu shlédnutí, komentářů, objednávek ap. Přirovnal bych k to k facebookovému našeptávači, kdy se hledá v přátelích, přátelé přátel, skupin, lidí ap.
Vyhledává se přímo když uživatel píše, čili tu režii při hledání bych potřeboval co nejmenší.
20. 1. 2014 16:02:26
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987089
Můžete zkusit UNION ALL
Zvážil bych shrnutí všech vyhledávaných objektů do jedné tabulky a využití fulltextového indexu, nebo fulltextové nadstavby jako Sphinx.
20. 1. 2014 17:41:10
https://webtrh.cz/diskuse/seskupeni-tri-tabulek/#reply987088
Pro odpověď se přihlašte.
Přihlásit