![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Potrzebuję zaprojektować bazę danych. Od 2-3 lat nie siedziałem w PHP i sporo zapomniałem... włącznie z odwołaniami do bazy ![]() Strona ma kategorie i podkategorie: + sport - piłka nożna - siatkówka + muzyka - hip-hop - rock Użytkownik wchodzi w kategorie, wyświetla się lista testów. Użytkownik wybiera test, rozwiązuje, liczone są pkt i dodawane do jego uzbieranych punktów. No i teraz pojawia się dylemat. W jaki sposób zabronić użytkownikowi, a raczej uniemożliwić ponownego rozwiązywania tego samego testu? Po prostu jeden test, jedno podejście. Jak to widzicie? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tabela dodatkowa
TEST_USER z polami ID_TEST ID_USER Jak user wypelni test to wkładasz rekord do tej tabeli. A jak chce wypełniać dany test to patrzysz czy już istnieje jego rekord dla tego testu czy nie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
W bazie będziesz miał ID poszczegółnych testów, tak samo w tabeli z userami będziesz miał ID wszystkich userów. Przykładowe rozwiązanie:
tabela `testy_rozwiazane`: Cytat | USER_ID | TEST_ID | i jako user_id podajesz id usera, ktory dany test rozwiązał, a jako test_id - podajesz id testu, który był rozwiązywany. Sprawdzanie czy dany user o id=13 już rozwiązywał test o id=15:
Jeśli counter zwróci liczbę większą niż 0 to dany user rozwiązywał juz dany test ![]() Pamiętaj, aby nadać index'y na oby dwa pola. Ten post edytował Michael2318 14.04.2013, 12:10:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:03 |