![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 25.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam do Was pytanie odnosnie sposobu zbudowania tabeli do wynikow typu sportowego gdzie wprowadzane beda czasy poszczegolnych zawodnikow i na tej podstawie tworzone tabele-klasyfikacje oraz statystyki typu kto ile razy zajal jakie miejsce itp. W kazdej dyscyplinie bedzie rozgrywanych duzo zawodow ktore tworzyc bede w osobnej tabeli i oznaczal je kolejnymi numerami id+nazwa tych zawodow i potem w wynikach do kazdego czasu i nazwiska zawodnika bede dodawal te id w jakich zawodach ten czas zostal osiagniety. I teraz mam zasadnicze pytanie czy w takiej sytuacji sadzicie ze powinienem wstawic dodatkowa kolumne w ktorej wpisywalbym pozycje ktora dany zawodnik zajal w danych zawodach czy lepiej zostawic to poleceniu do bazy ktore bedzie sortowac czasy i sprawdzac ktory to byl czas z kolei? Ma to dla mnie zasadnicze znaczenie bo jesli nie dodam tej kolumny bedzie mi latwiej dodawac wyniki bowiem nie bede musial ich sam sortowac tylko po prostu wpisywac do bazy oznaczajac tylko w jakich zawodach byly zrobione a skrypt sam obliczy miejsce ponadto takie rozwiazanie bedzie tez latwe w przypadku modyfikacji wynikow np kary, wystarczy ze zmienie czas a w tabeli automatycznie zmieni sie pozycja zawodnika a jesli bede chcial kazdego oznaczac pozycjami to przy okazji bede musial tez zmieniac numery pozycji wszystkim ktorzy w wyniku takiej kary zmienili swoje miejsca w klasyfikacji. Ale z drugiej strony majac fizycznie pozycje poszczegolnych zawodnikow w poszczegolnych zawodach bedzie mi latwiej nimi zarzadzac, o ile zwykla tabela z wynikami to nie problem bez wzgledu na wariant to juz statystyki zawodnikow bedzie duzo latwiej tworzyc majac te miejsca zapisane w bazie (np wyswietlenie zawodow w ktorych jakis zawodnik byl pierwszy, liczenie srednich pozycji itd) Dlatego mam dylemt i chcialbym poznac Wasze zdanie, czy wiecie jak profesjonalisci tworza takie bazy? Ktory wariant wybieraja? TABELA ZAWODY - ID zawodow - Nazwa zawodow TABELA Z WYNIKAMI (Wariant 1) - Id wyniku - Id zawodow - Zawodnik - Czas - (Jakies inne atrybuty kary, narodowosc itd) TABELA Z WYNIKAMI (Wariant 2) - Id wyniku - Id zawodow - Zawodnik - Czas - Miejsce (pozycja w danych konkretnych zawodach) - (Jakies inne atrybuty kary, narodowosc itd) Ten post edytował lexis72 17.04.2014, 20:41:38 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
bez miejsca, jest to kolejne pole które będziesz musiał ręcznie wyliczać i dbać o aktualizację. Tak jak napisałeś jak zmieni się czas na gorszy to w najgorszym wypadku będziesz musiał przeliczyć wszystkie rekordy z danych zawodów i zrobić update.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 25.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
No dobra ale wiesz jak ciezko bedzie zbudowac zapytania do statystyk bez miejsc w wynikach nie mowiac juz jaki to bedzie mialo wplyw na baze. Kilka przykladow:
- chce znalezc w jakich zawodach zawodnik XYZ zajal powiedzmy pierwsze i trzecie miejsce. W wariancie z miejscami wystarczy zapytanie ktore znajdzie 'jedynki' i 'trojki' przy nicku tego kierowcy i poda id tych zawodow podczas gdy w drugim wariancie bedzie trzeba robic zapytanie ktore bedzie analizowalo kazde zawody oddzielnie, w locie tworzylo tabele z czasami i sprawdzalo podane wyzej warunki. - chce zrobic tabele 10 najlepszych zawodnikow w danym roku na podstawie ich srednich wynikow. O ile w pierwszym wariancie to pestka zarowno dla mnie jak i bazy to w drugim liczenie wszsytkim zawodnikom sredniej z wynikow ustalanych w locie moze byc klopotliwe. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Możesz bez problemu wyszukać zawodnika który zajął 3 miejsce. Ja osobiście napisałbym dodatkowy widok który w pierwszej kolumnie zwracałby miejsce. Są konstrukcje które na to pozwalają. A Ty nie musiałbyś martwić się o aktualizowanie tabel (IMG:style_emoticons/default/wink.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 04:35 |