Autor | Zpráva | ||
---|---|---|---|
matak Profil |
#1 · Zasláno: 23. 11. 2011, 11:26:04
nemáte někdo zkušenost s takovým algoritmem? jak zajistit aby uživatel neviděl 2x stejné foto, jak nabízet další fotky v řadě, nabízí se náhodně? (to je asi blbost), nebo podle data přidání? podle idečka? co další den když přijde k počítači jak nabídnout nové? jak nenabízet ty které již hodnotil resp. ty které už viděl?
|
||
meris Profil |
#2 · Zasláno: 23. 11. 2011, 11:35:39
Jak nenabízet ty co již viděl:
Musís si evidovat kdo hlasování provedl a vybírat ty u kterých vybraný uživatel nehlasoval. Další fotky bych nabízel podle data vložení, náhodne v případě, že chceš aby hodnotili všechny fotky, ne jen ty aktuální. Další den nabízet stejným způsobem, ale omezit na ty které ještě nevybral. |
||
jenikkozak Profil |
#3 · Zasláno: 23. 11. 2011, 11:36:45
matak:
„nabízí se náhodně? (to je asi blbost), nebo podle data přidání? podle idečka?“ Záleží na tom, jak to chceš. „jak zajistit aby uživatel neviděl 2x stejné foto“ „co další den když přijde k počítači jak nabídnout nové? jak nenabízet ty které již hodnotil resp. ty které už viděl?“ Informaci o zobrazených fotografiích si ukládej do databáze. Pak jen porovnej, jestli už daný uživatel (či daná IP) fotku viděla (hodnotila). |
||
matak Profil |
#4 · Zasláno: 23. 11. 2011, 11:37:50
hm myslím, že jste to nedomyslel
1. jde i o fotky které uživatel již viděl, jak druhý den poznáte, kde skončil? a to se bavíme i o tom, že uživatel není přihlášen, hlasovat může jen přihlášený, ale prohlížet může každý 2. náhodně, jsme u toho jak vybrat co ještě neviděl takže hlavní problém jak nabídnout to co ještě neviděl, a bavíme s o technickém řešení spíše tam bude problém |
||
matak Profil |
#5 · Zasláno: 23. 11. 2011, 11:38:44
porovnej, ale jak? můžete jen načrtnout řešení, prosím nejsem lama, vím o čem je řeč jen možná to nemáte domyšlené do konce, stačí v odrážkách nastínit váš postup
|
||
jenikkozak Profil |
#6 · Zasláno: 23. 11. 2011, 11:42:06
matak:
„jen možná to nemáte domyšlené do konce, stačí v odrážkách nastínit váš postup“ Spíše to nemáš domyšlené ty. :-) - vyhledáš v databázi fotku, kterou uživatel neměl ještě zobrazenou (či hodnocenou, nastavení podmínek záleží na tobě); - když uživatel fotku hodnotí, uložíš do databáze, že uživatel fotku hodnotil; - dva body stačí |
||
matak Profil |
#7 · Zasláno: 23. 11. 2011, 11:44:47
heh pokračujme, můžete napsat sql dotaz vyhledání takové fotky který přihlédne k tomu, že uživatel už prošel 1000 fotek, že je viděl, to neznamená, že je hodnotil, ale to je detail
|
||
Ugo Profil |
#8 · Zasláno: 23. 11. 2011, 11:49:23
samozřejmě není možné to udělat jak chceš, ale to jistě víš. nejspolehlivější bys měl ukládat nějakou hash(ip+client info)+id zobrazené (hlasované) fotky. jenomže takové řešení bude neskutečně pomalé a navíc stejně nebude 100%, být tebou tak zobrazení vůbec neřeším, prostě zobrazuji náhodně a ve velkým počtu fotek se duplicity ztratí.
|
||
jenikkozak Profil |
#9 · Zasláno: 23. 11. 2011, 11:49:27
matak:
„heh pokračujme, můžete napsat sql dotaz vyhledání takové fotky který přihlédne k tomu, že uživatel už prošel 1000 fotek, že je viděl, to neznamená, že je hodnotil, ale to je detail“ Mají se fotky vybírat náhodně z těch, které ještě neměl zobrazené? Pokud měl fotku zobrazenou, ale nehodnotil ji, má se mu zobrazit znovu? SELECT id FROM seznam_fotek WHERE id NOT IN (SELECT id FROM zobrazeni_fotek WHERE nick='nick_hodnotitele') ORDER BY RAND() LIMIT 1 |
||
matak Profil |
#10 · Zasláno: 23. 11. 2011, 11:54:27
ugo ano došel jsem ke stejnému názoru, ale nemám z toho dobrý pocit, ty duplicity opravdu nechci
jenikkozak ano presne tento dotaz mam na mysli, ale bohužel pri vetsim mnozstvi ve WHERE NOT IN to nebude fungovat, mysql se proste dokonce sesype, urcitym zpusobem reseni by byl join, ale to zase znamena ukladat ty vsechny prosle fotky a bude to strasne pomale, krom toho jak evidovat cookie usery, tedy neprihlasene, co takovy google, ten mi zaseka celou tabulku jednou denne milionem zaznamu |
||
Ugo Profil |
#11 · Zasláno: 23. 11. 2011, 11:57:05
select * from fotky as f where not exists (select id from fotky_zobrazeno as fz where f.id=fz.id and hash=USERHASH) ORDER BY RAND() LIMIT 1
if num_rows<1 .. -> select * from fotky ORDER BY RAND() LIMIT 1 |
||
jenikkozak Profil |
#12 · Zasláno: 23. 11. 2011, 11:58:54
matak:
„co takovy google, ten mi zaseka celou tabulku jednou denne milionem zaznamu“ Jaký má smysl ukládat, jaké fotky prošel robot? |
||
Ugo Profil |
#13 · Zasláno: 23. 11. 2011, 12:02:08
na google podobne bys musel mít buď brutální omezení přístupu a nebo si ukládej ještě čas a když je nějaká posloupnost .. moc rychle, tak ho blokni, ale já se stejně přikláním k názoru duplicity neřešit, maximálně nějak jednoduše je omezit například podle počtu zobrazení ... vybírej si pár co maj nejmíň zobrazení
|
||
jenikkozak Profil |
#14 · Zasláno: 23. 11. 2011, 12:04:24 · Upravil/a: jenikkozak
matak:
Pokud bys fakt měl tak moc tak moc aktivních uživatelů a tak moc fotek, tak jak jsi uvedl v prvním příspěvku, ukládej u IP (či jakéhokoliv jiného identifikátoru) nejvyšší id fotky, které bylo zobrazeno, a vyber nejmenší id, které je větší než to uložené. |
||
matak Profil |
#15 · Zasláno: 23. 11. 2011, 12:31:37
ano to s tim id jsme se nakonec rozhodli udelat, ale chtel jsem prave vedet jestli nekdo nezna algoritmus tech ostatnich podobnych sluzeb, jestli je rozumne v tomto pripade nabizet fotky tak jak byly nahrany a ma to dalsi negativum se kterym nevim co mam delat
co kdyz nejaka fotka ceka na schvaleni, tak ji vyradit a nekdo se pres to id prezene a az bude schvalena za hodinu tak bohuzel uz tu fotku nikdy neuvidi, takze mam pocit ze je to spis docasne reseni |
||
matak Profil |
#16 · Zasláno: 23. 11. 2011, 12:32:30
jedine co mne napada fotky co cekaji na schvaleni proste pojedou do schvalovaci tabulky a az po schvaleni se presunou do te halvni, ok, vidite nekdo jeste nejaky dalsi zádrhel?
|
||
Ugo Profil |
#17 · Zasláno: 23. 11. 2011, 12:45:18
zobrazovat fotky posloupně se mi nelíbí, ale faktem je že to je jediné řešení které je spolehlivé a rychlé. Většinout to ostatní služby to neřeší, fotku ti zobrazí klidně 5x po sobě, ale mají jich tolik že se to prostě nestane. Takhle se totiž stane že se ti budou zobrazovat jednotlivý uživatelé po sobě jelikož fotky budou nahrávat hromadně. S tim schvalováním musíš jedině tak a nebo neschvalovat, nech schvalování na prohlížejících - "je tato fotka nevhodná?" - po 3 kliknutí se ti ukáže v administraci abys to zvážil
|
||
matak Profil |
#18 · Zasláno: 23. 11. 2011, 12:52:17
schvalují vybraní prohlížející taková je strategie zatím, já si tuto službu nechci zaplevelit bordelem, kde si tam každý hodí jakoukoli nerelevantní kravinu co ho napadne
a s těmi více uživateli za sebou, hm já vím no, ale zkusím to takto pak se uvidí jeslti se najde jiné řešení, zatím děkuji za komentáře |
||
Časová prodleva: 12 let
|
0