![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 1 Dołączył: 15.10.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Planuję zrobić system do obsług relacji tekstowych (typowe relacje live na wielu stronach sportowych). W tym celu zaplanowałem listę poniższych tabel, chciałbym zapytać się, czy takie rozwiązanie jest właściwe jeśli chodzi o wydajność, zajmowaną pamięć. Może ktoś zna lepsze rozwiązanie.
Kod terminarz-mecze
id int(10) unsigned NOT NULL auto_increment PRIMARY KEY, id_sezon int(10) unsigned NOT NULL INDEX id_rozgrywki int(10) unsigned NOT NULL INDEX id_gospodarz int(10) unsigned NOT NULL INDEX id_gosc int(10) unsigned NOT NULL INDEX data DATE NOT NULL wynik varchar('7') NOT NULL kolejka varchar('50') NOT NULL live id int(10) unsigned NOT NULL auto_increment PRIMARY KEY id_mecz int(10) unsigned NOT NULL INDEX wynik varchar('7') NOT NULL live-pilkarze id int(10) unsigned NOT NULL auto_increment PRIMARY KEY id_live int(10) unsigned NOT NULL INDEX id_klub int(10) unsigned NOT NULL INDEX imie_nazwisko varchar('50') NOT NULL numer int('2') unsigned NOT NULL rodzaj ENUM('pierwszy_sklad', 'rezerwowy') live-wydarzenia id int(10) unsigned NOT NULL auto_increment PRIMARY KEY id_live int(10) unsigned NOT NULL INDEX id_pilkarz int(10) unsigned NOT NULL INDEX id_klub int(10) unsigned NOT NULL INDEX wydarzenie ENUM ('gol', 'kartka') rodzaj ENUM ('zwykly', 'karny', 'gol samobójczy'; 'zolta', 'czerwona') minuta int('3') unsigned NOT NULL live-zmiany id int(10) unsigned NOT NULL auto_increment PRIMARY KEY id_live int(10) unsigned NOT NULL INDEX id_klub int(10) unsigned NOT NULL INDEX id_pilkarz_a int(10) unsigned NOT NULL INDEX id_pilkarz_b int(10) unsigned NOT NULL INDEX minuta int('3') unsigned NOT NULL live-doniesienia id int(10) unsigned NOT NULL auto_increment PRIMARY KEY id_live int(10) unsigned NOT NULL INDEX rodzaj ENUM('zwykly', 'gol', 'zolta_kartka', 'czerwona_kartka', 'poczatek', 'przerwa', koniec') minuta int('3') unsigned NOT NULL doniesienie varchar('255') NOT NULL |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Wydajność zależy od zaplanowanych relacji/zapytań, pokaż powiązania, a nie tylko listing. Choć z tego, co widzę, to powinno być ok.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 1 Dołączył: 15.10.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
W zamyśle mam takie powiązania:
W tabeli terminarz-mecze przechowuje mecze, i jeśli do któregoś chce dodać relację live, wówczas wchodzę w panelu adm. w opcję 'stwórz relację' i dane zapisuje do tabeli live. Następnie w tabeli live-pilkarze dodaje składy obydwu drużyn, gdzie id_klub pozwala systemowi rozpoznać, czy to drużyna gospodarzy czy gości. Kolumna rodzaj - chyba jasne. Gdy padnie jakiś gol, ktoś dostanie żółtą kartkę itp to dane dodaje do tabeli live-wydarzenia gdzie id_pilkarz to 'sprawca całego zamieszania' a id_klub to zespół (tak żeby potem po odpowiedniej stronie tabeli wyświetlało dane) Natomiast tabela live-doniesienia ma przechowywać opis minuta po minucie. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
W skrocie:
dane o pilkarzach, minutach goli, kartek, zmian trzymaj prawie dowolnie w tabelach - na koniec cache'ujesz fragment HMTL'a po kazdej zmianie i userom wyswietlasz tego HTMLa. Podobnie z transmisja - mozesz generowac i keszowac calego HTMLa/XML/RSS dla przegladarki po dodaniu kazdego wpisu - ile ich bedzie? 200/mecz (a w niej czy to pobierasz cala transmisje od nowa, czy tez tylko nowe elementy). Czyli: zdarzen (zmian w bazie) bedzie niewiele w porownaniu do ilosci odswiezen (userow) wiec keszowanie to podstawa a sposob przechowywania danych prawi nie ma tu znaczenia i kazdy sensowny bedzie dobry. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 1 Dołączył: 15.10.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
W skrocie: dane o pilkarzach, minutach goli, kartek, zmian trzymaj prawie dowolnie w tabelach - na koniec cache'ujesz fragment HMTL'a po kazdej zmianie i userom wyswietlasz tego HTMLa. Podobnie z transmisja - mozesz generowac i keszowac calego HTMLa/XML/RSS dla przegladarki po dodaniu kazdego wpisu - ile ich bedzie? 200/mecz (a w niej czy to pobierasz cala transmisje od nowa, czy tez tylko nowe elementy). Czyli: zdarzen (zmian w bazie) bedzie niewiele w porownaniu do ilosci odswiezen (userow) wiec keszowanie to podstawa a sposob przechowywania danych prawi nie ma tu znaczenia i kazdy sensowny bedzie dobry. Czyli najistotniejsze jest cachowanie, a moje tabele są sensowne? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:23 |