Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Kontrukcja tabel - relacja live
henio
post 8.08.2009, 17:11:01
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
Go to the top of the page
+Quote Post
erix
post 10.08.2009, 13:30:10
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!
Go to the top of the page
+Quote Post
henio
post 10.08.2009, 16:45:04
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.
Go to the top of the page
+Quote Post
dr_bonzo
post 10.08.2009, 17:35:17
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.
Go to the top of the page
+Quote Post
henio
post 10.08.2009, 17:55:33
Post #5





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Cytat(dr_bonzo @ 10.08.2009, 18:35:17 ) *
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?
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:23