Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: tagy

Ostatní jazyky SQL SQL a databáze tagy

Aktivity (1)
Avatar
Honza Bittner
Šupák
Avatar
Honza Bittner:31.8.2013 12:48

Ahoj, určitě všichni znáte tagy, například z blohů - dívky, krása, počítač, auta atp ...

Nějak si neumím představit jak se vyhledávají články podle zadání více než 1 tagu a jak jsou tagy uložené v DB ?

(např. vyhledávám auta, dívky, sport a vyjedou mi články co tyto tagy obsahují)

Odpovědět 31.8.2013 12:48
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
David Čápka:31.8.2013 12:55

To je vazba m:n, dělá se to přes vazební tabulku. Je to určitě v MySQL tutoriálech.

Nahoru Odpovědět 31.8.2013 12:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Honza Bittner
Kit:31.8.2013 12:55

Jsou v podstatě 2 možnosti:

  • použiješ množiny. Mají význam, pokud se seznam tagů nemění příliš často a tabulka není moc velká.
  • použiješ vazební tabulky M:N mezi tabulkou s články a tabulkou s tagy. V daném případě to asi bude výhodnější i kvůli výkonu.
Editováno 31.8.2013 12:55
Nahoru Odpovědět  +1 31.8.2013 12:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
David Čápka:31.8.2013 12:56

Nebo to můžeš udělat 1:N a nacpat to k článku jako booleany, záleží kolik máš tagů.

Nahoru Odpovědět 31.8.2013 12:56
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:31.8.2013 12:59

Také záleží na tom, kolik má článků. Pro velký počet se to moc nedá použít, protože se to nedá rozumně indexovat. Tabulka se musí pokaždé procházet sekvenčně.

Nahoru Odpovědět 31.8.2013 12:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Honza Bittner
Šupák
Avatar
Honza Bittner:31.8.2013 13:01

Děkuju oběma, už jsem našel i článek tak se na to pak kouknu :)

Vlastně bych mohl zkouknout celý ten tutoriál MySQL :D

Chci pak udělat blog, takže asi veliký 1/2 články deně atp ...
Tudíž bude ta M:N dobrá :)

Editováno 31.8.2013 13:02
Nahoru Odpovědět 31.8.2013 13:01
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:31.8.2013 13:03

To je pravda, nevím jak by to bylo u těch booleanů rychlé, ale teoreticky by to nemuselo být tak špatné.

Nahoru Odpovědět 31.8.2013 13:03
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Honza Bittner
Kit:31.8.2013 13:04

Nedávno jsem si stáhl celý manuál MySQL. Do té doby jsem netušil, že má 4310 stran. Budu mít ve vlaku co číst :)

Nahoru Odpovědět 31.8.2013 13:04
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Honza Bittner
Šupák
Avatar
Odpovídá na Kit
Honza Bittner:31.8.2013 13:08

Jo ? ...
NO, to bude na dlouho :D

Nahoru Odpovědět 31.8.2013 13:08
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:31.8.2013 13:09

V podstatě do několika tisíc až desítek tisíc položek by se to použít dalo, ale porušuje to 2NF a hůř se to udržuje.

Nahoru Odpovědět 31.8.2013 13:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Honza Bittner
Kit:31.8.2013 13:11

Je to referenční manuál. Hodí se, když potřebuješ vyhledat nějaký detail, jak přesně zní definice. Číst stránku po stránce bych se neodvážil.

Nahoru Odpovědět  +1 31.8.2013 13:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.