Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Honza Bittner
Tvůrce
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
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Honza Bittner
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
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
31.8.2013 12:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Honza Bittner
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
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
Tvůrce
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
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger: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
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
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
Tvůrce
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
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
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
Tvůrce
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
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.