Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Sposób sprawdzania ip głosujących
samuello
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.11.2011

Ostrzeżenie: (0%)
-----


Posiadam system głosowania i chcę dorobić do niego blokowanie możliwości wielokrotnego głosowania. Planuję wykorzystać do tego metodę sprawdzania ip osoby głosującej. Potrzeba do tego bazy z adresami ip, które już na dany element oddały głos.

Pytanie moje brzmi: w jaki sposób gromadzić adresy ip osób, które oddały głos?
  1. Czy zapisywać je do bazy danych, do tabeli która będzie składać się z dwóch kolumn: id elementu i ip? i każdy numer ip to nowy wiersz?
  2. Czy zapisywać je do tabeli w bazie danych z kolumnami jak wyżej, jednakże w taki sposób, że jeden wiersz będzie zawierał id i w polu ip wszystkie ip, które oddały głos na element o danym 'id'? Potem wykorzystać funkcję explode do porównania z aktualnie oddającym głos...
  3. Czy może zapisywać adresy ip do pliku? Jedna linijka to adres ip + id elementu.


Zastanawiam się czy sposób nr 1, przy założeniu 10 000 elementów na które można głosować i 10 000 użytkowników oddających głos na każdy z nich, nie będzie zbyt obciążający skrypt? Przy opisanym założeniu powstanie 10 000 000 wierszy w tabeli z adresami ip... A jeżeli jeszcze bardziej zwiększy się liczba elementów i głosujących? (generalnie ciekawy jestem czy jest jakieś praktyczne ograniczenie ilości wierszy i kolumn w tabeli bazy danych?)

W sposobie nr 2, może się okazać, że braknie miejsca na dopisywanie kolejnych adresów ip... gdyż z tego co się orientuję pola typu text czy nawet longtext ma jakieś ograniczenia ilości bajtów:>

W przypadku sposobu nr 3 też obawiam się o szybkość wykonywania skryptu...

Co Wy na to? Proszę o podpowiedzi i rady w poruszonej kwestii. A może ktoś widzi jakieś inne rozwiązanie problemu blokowania wielokrotnego głosowania? Może warto dodać jeszcze sprawdzanie cookies.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:42