Zamedzenie viacnasobneho hlasovanie – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zamedzenie viacnasobneho hlasovanie – PHP – Fórum – Programujte.comZamedzenie viacnasobneho hlasovanie – PHP – Fórum – Programujte.com

 

marioff0
Expert
25. 3. 2009   #1
-
0
-

zdravim php-ckarov..

mam cca 2000-2500 poloziek v databaze na ktore sa da hlasovat. (nieco ako Paci - Nepaci) Hlasovat mozu len registrovany uzivatelia, cize nemusim kontrolovat ani ip ani to robit cez cookies. Mohol by som to zapisovat do mysql formou id_uzivatela, id_polozky... Lenze tu nastava problem, co ked bude mat kazda polozka napr. 2000 hlasov (to mame 5 000 000 zaznamov v db, co by bol asi uz velky vykonnostny problem). Preto sa pitam ako je najlepsie tento problemik vyriesit. Ako vlastne zistovat ci registrovany uzivatel uz hlasoval za konkretnu polozku.

dakujem za vase konstruktivne navrhy.. a rady..

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
z_moravec
~ Redaktor
+3
Posthunter
25. 3. 2009   #2
-
0
-

Mohl bys ukládat hlasování uživatele do tabulky např. ve formátu xml. Pak bys měl na jednoho uživatele jen jeden záznam, ale výkonostně by to asi nebylo nic moc. IMHO i MySQL zvládne 5M a víc záznamu bez problémů.

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
marioff0
Expert
25. 3. 2009   #3
-
0
-

jj rozmyslal som aj nad tym ze jeden zaznam = jeden uzivatel napr. vo formate -idpolozky-idpolozky-idpolozky-.... a ci hlasoval zistit napr. pomocou substr... len som si skusal vlozit do db (na klasickom stolnom pocitaci) 5M zaznamov a bolo vidiet ze to je pomale.. :( tak newiem

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
KIIV
~ Moderátor
+43
God of flame
25. 3. 2009   #4
-
0
-

kdyz das indexy tak to vykonostne databaze v klidu zvladne... krom toho ses optimista :D
nereknu kdyz mam 2miliony zaznamu a delam nad nima treba pocty klicovejch slov a k tomu nejaky dalsi parametry ... to uz si veme tak 15-30s (kdyz bych jeste prevadel unixtimestamp na cas a s nim pak srovnaval tak to kostuje minimalne minutu - na rozdil kdyz se datum mezi kterym to chci mit prevede naopak)


v horsim pripade udelas pro kazdy clanek vlastni tabulku hlasu :D
jen by to byla pekna hromada souboru

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
marioff0
Expert
25. 3. 2009   #5
-
0
-

ok KIIV pouvazujem nad tym..... len dufam ze to nebudem potom musiet za behu pracne prerabat :)
hmm.. 2000 tabuliek... kym by som preskroloval naspodok menu v phpmyadmin tak by sa mi uz nechcelo :smile6:

ci este niekto ma nejaky napad, navrh?

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Santas0
Věrný člen
25. 3. 2009   #6
-
0
-

ved si to skus s tymi indexami a pusti si to na servery, nie u seba v PC (casto rozdielny vykon)

Nahlásit jako SPAM
IP: 195.91.79.–
http://psandtner.sk/blog
marioff0
Expert
25. 3. 2009   #7
-
0
-

To Santas : jj viem , server bude mat isto vacsi vykon (radovo), len som sa zabudol zmienit ze hlasovanie sa bude vykonavat pomerne casto.. cize urcite nejaka zataz tam bude... uz som ale pregooglil vsetko mozne a vyzera to ze to inak ani nie je mozne urobit..

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
KIIV
~ Moderátor
+43
God of flame
25. 3. 2009   #8
-
0
-

To marioff : tak udelej experiment... jednu tabulku kde budou hodnoty 2000x5000
a jak dlouho bude trvat testnuti zda neco existuje nebo ne
krom toho taky muzes udelat unikatni klic a kdyz bys pridaval neco stejneho tak uz by to nedovolilo

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
marioff0
Expert
25. 3. 2009   #9
-
0
-

jj urobim a dam vediet

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
hrach
~ Redaktor
+1
Boss
27. 3. 2009   #10
-
0
-

moc sem tu diskuzi neprocital, ale jednoznacne pouzit db table s indexy. Vzhledem k tomu, ze se bude jednat pouze o cisla, tak bych tom nevidel problem. Navic, pokud se jedna o interakci uzivatelu, tak bych to nevidel tak cerne, ne kazdy ohodnoti par tisic polozek na serveru.

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
Lordest0
Super člen
7. 4. 2009   #11
-
0
-

sry ak to uz niekto povedal tiez som si to moc necital, skus pouzit UNIQUE a potom cez podmienku ak sa sql prikaz nepodaril(cize v SQL prebehla chyba ze do UNIQUE tabulky sa neda pridat taky isty zaznam s takym istym ID uzivatela) tak vypise spravu ze uzivatel uz zahlasoval.. neviem ci to bude fungovat ale malo by..

Nahlásit jako SPAM
IP: 85.216.242.–
DragonBehemont0
Super člen
8. 4. 2009   #12
-
0
-

To Lordest : To by fungovalo, kdyby měl pro každý článek novou tabulku, ale jakmile bude mít hlasy ke všem článkům v jedné tabulce, tak by mohl každý čtenář hlasovat pro jediný článek :-)) A nebo to udělat, že by tam byl ještě jeden sloupec, kde by byly hodnoty například IdClanku_IdCtenare (např.: 10_25), potom by se dal použít ten UNIQUE.

Nahlásit jako SPAM
IP: 212.77.163.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
z_moravec
~ Redaktor
+3
Posthunter
8. 4. 2009   #13
-
0
-

To DragonBehemont : Můžeš udělat index i přes víc sloupců, takže s tím UNIQUE by to teoreticky šlo.

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
DragonBehemont0
Super člen
8. 4. 2009   #14
-
0
-

To z_moravec : Jako že by se jeden index vztahoval na více sloupců? Tak jo, další nová informace :-) A jak by se v tomto případě choval UNIQUE? Bral by to tak, že aspoň jedna hodnota musí být unikátní? A nebo, že třeba obě hodnoty musí být unikátní? Protože pokud by museli být oba unikátní, tak by to stejně nešlo.

Nahlásit jako SPAM
IP: 212.77.163.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
z_moravec
~ Redaktor
+3
Posthunter
8. 4. 2009   #15
-
0
-
Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
DragonBehemont0
Super člen
8. 4. 2009   #16
-
0
-

To z_moravec : Děkuji za vysvětlení :-)

Nahlásit jako SPAM
IP: 212.77.163.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Datlik0
Návštěvník
16. 4. 2009   #17
-
0
-

no vrovna nwm jak si to predstavujes ale ja mam ankety dlany nejak takto jedna tabulka ma v sobe :

[seznam]id ankety [/seznam]
[seznam]Na co se ptas [/seznam]
[seznam]1moznost [/seznam]
[seznam]2moznost atd. [/seznam]

a druha tabulka co ma :

[seznam]Kdo hlasoval [/seznam]
[seznam]id ankety ve ktere hlasoval [/seznam]
[seznam]Jakou moznost si zvolil [/seznam]

Pak to muze byt treba tahle



1 //id ankety
ak se ti libi stranky? //nazev
dobre // 1 moznost
ujde to // 2moznost
spatne /// 3moznost



Quimby // kdo hlasoval
1 // id ankety
3 // moznost c.3


a pak kdyby nekdo hlasoval tak se vybere id ankety z db a porovna se to z druhou tabulkou jestli uz tam neni nahodou ze uz hlasoval

EDIT: Nikde nesmi bejt primary key nebo tak neco mozna bych mohl poslat i soubory ale jsou stary delany pro php 5 to by slo ale dalo by se to este dost upravovat protoze ale nato nemam cas a nebavi me to.....

EDIT2 : este jsem si vzpomel to hlasovani by slo jen kdyz je uzivatel prihlasenej cili pokud to delas pres session tak by cely ankety delal nak tahle


session_start();
if(session_is_registered("neco"))
{

ankety........
}
else
{
echo "Musíte se přihlásit.";
}



takhle bych to resil ja jinak posli odkaz na stranky plz

Nahlásit jako SPAM
IP: 85.13.98.–
Lordest0
Super člen
16. 4. 2009   #18
-
0
-

DragonBehemont napsal:
To Lordest : To by fungovalo, kdyby měl pro každý článek novou tabulku, ale jakmile bude mít hlasy ke všem článkům v jedné tabulce, tak by mohl každý čtenář hlasovat pro jediný článek :-)) A nebo to udělat, že by tam byl ještě jeden sloupec, kde by byly hodnoty například IdClanku_IdCtenare (např.: 10_25), potom by se dal použít ten UNIQUE.


skusal som to pri ankete a hodnoteni , a funguje to na sto percent.. neviem ako je to u clankov alebo u sekciach ktore sa casto aktualizuju ( novinky a pod. ).. ale ako hovorim pri ankete a hodnoteni mi to fungovalo..

Nahlásit jako SPAM
IP: 85.216.242.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

Hlasovanie — založil FufurR

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý