Chodzi o to, ze prowadze sobie systemik do prowadzenia rankingow. Poki co jest tylko jeden rodzaj, wiec nie ma wiekszego problemu, ale w najblizszym czasie zamierzam to przerobic tak, zebym bez przeszkod mogl obsluzyc ich wiele. No ale do sedna.. kazdy z tych rankingow posiada pewne wspolne cechy, ale sa tez atrybuty specyficzne dla kazdego z nich.
Do tej pory jest mniej wiecej tak samo jak w przypadku cech produktow w sklepie..
Jednak u mnie problem polega na tym, ze podczas wyswietlania wynikow musze pobrac wspolne cechy kazdego wpisu oraz cechy specyficzne dla wyswietlanego rankingu za jednym zamachem (w przypadku sklepu cechy pobiera sie dopiero po "wejsciu" w konkretny produkt, a nie podczas samego ich listowania, co znacznie ulatwia sprawe). Wywolywanie osobnego zapytania dla kazdego wyniku, zeby pobrac te elastyczne atrybuty z oczywistych wzgledow odpada.
Malo tego musi istniec mozliwosc sortowania i filtrowania po tych specyficznych atrybutach, wiec raczej nie moge sobie ich trzymac w jakims jednym polu w postaci zserializowanej tablicy. Zeby jeszcze nie bylo za latwo to niekoniecznie kazdy z tych specyficznych atrybutow musi byc ciagiem znakow.. rownie dobrze moze to byc liczba (i tylko te 2 typy wchodza w gre), a w przypadku liczb sortowanie wyglada inaczej jesli pole jest typu liczbowego i inaczej jesli jest to string.
Narazie jedyne co wymyslilem to cos takiego, ze mam dodatkowe tabelki do tych atrybutow. Jedna z ich "definicją" (tj. nazwa, typ, jakis opis etc.), druga z wartosciami (id atrybutu z pierwszej tabeli, id wyniku i dwa pola z wartoscia - jedno liczbowe, drugie tekstowe) i trzecia to juz tylko tabela laczaca pierwsza tabele z tabela rankingow. Wybieranie wynikow odbywalo by sie poprzez zapytanie generowane przez php, co spodowaloby koniecznosc wykonania tylko dwoch zapytan. To do pobrania definicji atrybutow dla danego rankignu mozna dodatkowo cachowac, bo nie bedzie sie to zmieniac w trakcie.
Pytanie brzmi oczywiscie: czy ktos ma lepsza wizje rozwiazania tego problemu ?
Wczesniej nie mialem do czynienia z podobnymi przypadkami, wiec najlepsze co do tej pory udalo mi sie wymyslic to to co podalem wyzej. Za wszelkie uwagi do powyzszego oraz proby pomocy z gory dziekuje
