Autor Zpráva
Prochy
Profil
Dobrý večer,

potřeboval bych trochu poradit s návrhem databáze pro fotbalové stránky našeho týmu. Chtěl bych mít v databázi uložené jednotlivé zápasy, k těm zápasům články, poté jednotlivé kategorie, hráče našeho týmu. Nějaký návrh databáze mám, ale potřeboval bych říct, jestli je něco vyloženě špatně, či to celkem ujde (viz níže na obrázku). Bohužel nepodařilo se mi k tomu obrázku přidat relace, ale všude kde je napsané id, tak to pasuje k té tabulce. Nejmíň jistý si sem tabulkou pro články a zápasy. Jelikož je možné, že v tabulce "matches" nebude zápas, kde ani jeden tým není z našeho klubu, tak proměnnou ourTeam rozlišuju, který tým je náš (ourTeam=1 -> teamA je náš, ourTeam=2 -> teamB je náš, ourTeam=NULL -> jedná se o cizí týmy). Je možné hrát zápas a pak zápasy, které jsou v rámci nějakého turnaje. Mám proto v tabulce uvedené idTurnaje, které se bude automaticky inkrementovat vždy, když bude nový turnaj a podle toho se přiřadí všem zápasům, který jsou v rámci jednoho turnaje. Když id turnaje bude == NULL, tak se jedná o klasický zápas. Články můžou patři k zápasům nebo jen tak všeobecně. Opět když patří k nějakému turnaji, tak článek má přiřazeno idTournament. Pokud k zápasu, tak má idMatch nastavené id k zápasu ke kterému se vztahuje článek.



Vím, že se jedná o poměrně lehkou databázi, ale nerad bych udělal v návrhu nějakou větší botu.
Děkuji za případné rady
tiso
Profil
Ťažko sa radí, je viacero riešení a každá požiadavka môže ovplyvniť návrh. Najväčším problémom sú tie voľné väzby medzi jednotlivými tabuľkami.
- nechal by som samostatnú tabuľku článkov a pripájal ju k iným tabuľkám cez prepojovaciu article_entity((id, )idArticle, entityType, entityId)
- tabuľku trainings a časť z matches by som vyčlenil do events(id, eventType, start, end, isPublic). Medzi eventy by mohli patriť i turnaje, sezóny a podobne.
Fury
Profil *
Proč potřebuješ rozlišovat ourTeam? Já to mám tak, že v list_teams mám tým s ID 1, který je "FC Můj tým" a následně pokud ho potřebuju kdykoliv vyfiltrovat v matches, tak vím že je to ten s ID 1 a lehce se mi filtruje.
Kajman
Profil
- score si neukládejte jako varchar, ale jako dva číselné sloupce.
- popřemýšlejte, jestli neudělat i vazby tým - hráč - od - do. Podobně tým - soutěž - sezóna.
- zápasech si můžete dát i id stadionu (pokud si číselník vyrobíte)
- často se dělá i statistika, kdo do zápasu nastoupil, kdy střídal, kdy dostal kartu a kdo dělal rozhodčí
Prochy
Profil
Omlouvám se, že reaguji až takto pozdě, bohužel nemám teď moc času.

Všem děkuji za odpovědi.
Fury: Sem vůl, mělo mě to napadnout díky.
Kajman:
Ukládání score:To mě prvně napadlo, ale nějak sem měl od toho v plánu ustoupit, je pravda, že pak pro statistiky bude lepší integer. Byl sem asi línej, jelikož bude tam muset být ještě dva sloupce pro penalty, ale pravděpodobně to nakonec udělám, jak doporučuješ.
Statistiky sestavy:Nad vazbami mezi hráči a jak dlouho hrál atd, tak nad tím jsem taky přemýšlel. Upustil jsem od toho nakonec z důvodu jednodušší obsluhy, kdy vlastně většinou ten kdo bude tvořit článek, tak pravděpodobně udělá CTRL+C -> CTRL+V do sloupce se sestavou. Pravděpodobně by to šlo udělat tak, že bych po zkopírování sestavy ze schránky automaticky vyhledal ty hráče z tabulky a následně to k tomu přiřadil a správce by to pak pouze doladil, ale trochu se bojím, jak bych to zvládal udělat.

Filip

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: