Autor Zpráva
koudelacek
Profil *
Dobrý den, možná už to tady bylo, nicméně jsem v časové tísni a hledám řešení jak zamezit uživateli např. vícenásobnému hlasování, vícenásobnému like-,ování, doporučování. Musím informace ukládat do tabulky. Díky za rady.
Rfilip
Profil
Když uživatel hlasuje, ulož si jeho ip do tabulky s údajem že hlasoval, a zároveň kontroluj jestli na té ip není už v tabulce záznam že hlasoval. To udělej i při zobrazení stránky s anketou- v případě že hlasoval nezobrazíš hlasovací tlačítko
David1256
Profil
Tenhle problém mě taky docela zajímá, ale přes IP bych to rozhodně neřešil, protože pokud uložíš IP, zamezíš hlasovat dalším lidem na stejné IP, pokud je daná IP veřejná.
koudelacek
Profil *
A není načítání z databáze rychlejší ? Pokud bych do řádku ankety přidal například voted a v něm by byly id od uživatelů co by hlasovali a pak bych to akorat rozsekal přes explode ?
David1256
Profil
Tohle je dobrý způsob. Nicméně vyřeš to, když nechceš, aby se uživatel musel kvůli anketě registrovat?
Someone
Profil
[#4] koudelacek
Tohle je špatné uvažování, v tomto případě by měly být 3 tabulky
Uzivatele Ankety Spojovaci
Ve spojovací By bylo ID uživatele a ID ankety, ve které dotyčný hlasoval.
koudelacek
Profil *
Anketa byl priklad.
Mám tabulku uzivatel a tabulku projekt - uzivatel se prihlasi, klikne ze doporucuje projekt a do tabulky projekt se do hodnoty recommend prida hodnota id uzivatele.
Someone
Profil
koudelacek:
To je špatný návrh.
Je třeba vytvořit ještě jednu tabulku, která bude obsahovat ID_uzivatelu a ID_projektu který doporučují.
UZIVATELE
ID | Jmeno
1 | Jarda
2 | Honza

PROJEKTY
ID | Nazev
1 | Koulovaná
2 | Bahení zápasy
3 | Skákání z okna

SPOJOVACI
ID_uzivatele | ID_projektu
1 | 2 // Uživatel Jarda doporučuje projekt: Bahení zápasy
2 | 2 // Uživatele Honza doporučuje projekt Bahení zápasy
2 | 1 // uživatele Honza doporučuje projekt Koulovaná
koudelacek
Profil *
Ok, děkuju. Předpokládám, že je to rychlejší ?!
Nox
Profil
Mělo by asi být rychlejší, ale hlavně je to čistší, rozšiřitelnější...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0