Diskuze: tagy

Ostatní jazyky SQL SQL a databáze tagy

Avatar
Honza Bittner
Redaktor
Avatar
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Honza Bittner
David Čápka:

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:

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:

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:

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
Redaktor
Avatar
Honza Bittner:

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
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

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:

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
Redaktor
Avatar
Odpovídá na Kit
Honza Bittner:

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

Nahoru Odpovědět 31.8.2013 13:08
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

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:

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.