Dobrý den,
chtěl bych Vás poprosit o pomoc s návrhem struktury databáze v MySQL.
Mám jednu tabulku ve které jsou závodníci(jejich vlastnosti, jmena, atd.)
Druhou tabulku ve které jsou závody
Každý závodní den budou cca 4 závody, potřebuji nějak udělat aby se závodník přihlásil na zvolený závod. Ted právě nevím jestli dělat další tabulku, ke každému závodu, do které se budou závodníci "zapisovat". Potřebuji, aby když se rozklikne stránka se závodem, tam byl výpis přihlášených závodníků.
Nevím právě jestli an to dělat v MySQL další tabulku, nebo to nějak ošetřit přes informaci u závodníka do kterého závodu je přihlášen (id závodu).
Proběhne script který na základě určitého matematického vzorce vezme v úvahu atributy závodníka a závodu a potřebuji aby se uložili výsledky do nějaké tabulky a aby se opět zobrazili na stránce závodů, stejně jako před proběhnutím scriptu je seznam přihlášených. Tak nevím jestli dělat novou tabulku, nebo jestli se to dá nějak očetřit opět přes závodníka.
Navíc však potřebuji aby se zobrazovala historie závodu závodníka (posledních cca 15 závodů) takže ty data musejí někdě zůstávat a nesmějí se novým závodem přepsat.
Chtěl bych Vás poprosit o radu ohledně struktury. Na co udělat samostatnou tabulku, které spolu propojit.
Nejde mi o napsání příkazů, ale spíše o pomoc se samotnou strukturou. Jestli nemá někdo s něčím podobným zkušenosti.
Věci jako následný výpis přihlášených, zaregistrování do závodu atd... pomocí php problém není, ale pouze nevím jak to ideálně sestavit.
Předem děkuji
Pomoc se strukturou MySQL
-
- člen HW spec týmu
-
Elite Level 12
- Příspěvky: 16119
- Registrován: květen 08
- Bydliště: České Budějovice
- Pohlaví:
- Stav:
Offline
Re: Pomoc se strukturou MySQL
Pokud se bavíme o relacích, tak se bez pomocné tabulky neobejdeš. Potřebuješ někde sbírat data z vazby Závodník > Závod.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?
Chcete si nechat sestavit nový počítač?
Re: Pomoc se strukturou MySQL
Takže jestli to dobře chápu, budu mít:
Tabulku závodník
Tabulku závod
Tabulku Závod přihlášené -> kde bude na řádku závod a k němu přihlášení závodníci
Tabulku výsledky -> zde se zapíšou ke každému závodu výsledky přihlášených závodníků z tabulky Závod přihlášené.
Z tabulky závod přihlášené budu vypisovat přihlášené závodníky, z tabulky Výsledky potom vypíšu výsledky.
A když si pak rozkliknu profil závodníka, tak z které tabulky to načte jeho historii (cca 15 závodů) Mám také na to udělat nějakou speciální tabulku?
Tabulku závodník
Tabulku závod
Tabulku Závod přihlášené -> kde bude na řádku závod a k němu přihlášení závodníci
Tabulku výsledky -> zde se zapíšou ke každému závodu výsledky přihlášených závodníků z tabulky Závod přihlášené.
Z tabulky závod přihlášené budu vypisovat přihlášené závodníky, z tabulky Výsledky potom vypíšu výsledky.
A když si pak rozkliknu profil závodníka, tak z které tabulky to načte jeho historii (cca 15 závodů) Mám také na to udělat nějakou speciální tabulku?
-
- člen HW spec týmu
-
Elite Level 12
- Příspěvky: 16119
- Registrován: květen 08
- Bydliště: České Budějovice
- Pohlaví:
- Stav:
Offline
Re: Pomoc se strukturou MySQL
Tabulka Historie nebude nutná, protože to vytáhneš z té propojovací (relace M:N, protože každý závod může mít více závodníků a opačně). Budeš tam míst ID závodu i ID závodníka, tabulku výsledků propojíš s tabulkou závodů i s tabulkou závodníků (potřebuješ vytáhnout závod, i kdo vyhrál).
Tabulka výsledků by možná ani nemusela být, v té propojovací by mohl být údaj o pařadí, IDzavodnik + IDzavod + poradi. Ale větší přehled bude v samostatné tabulce.
Tabulka výsledků by možná ani nemusela být, v té propojovací by mohl být údaj o pařadí, IDzavodnik + IDzavod + poradi. Ale větší přehled bude v samostatné tabulce.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?
Chcete si nechat sestavit nový počítač?
Re: Pomoc se strukturou MySQL
Jestli to tedy chápu mělo by to fungovat nějak takhle:
Závodník z tabulky A se zaregistruje do závodu z tabulky B. Tím že odešle registraci do závodu, se v abulce propojovací vytvoří řádek s id závodu a id závodníka.
Potom proběhne časový script, vezme z tabuly propojovaci všechny řádky kde id závodu splnuje podmínku datumu závodu a pro každý řádek to provede výpočet podle předem nastaveného vzorce a tento výsledek to zapíše do nové tabulky kam zapíše id závdu, id závodníka, tu naší hodnotu a to co z ní plyne.
Nebo mi tam nějaká tabulka vypadla?
Když pak budu chtít udělat ke každému závodu výpis přihlášených závodníků, tak vezmu tabulku propojovací a zobrazím ten řádek, kde id zavodu bude stejný z určitým závodem a id závodníka nahradím při výpisu jménem z tabulky A.
Závodník z tabulky A se zaregistruje do závodu z tabulky B. Tím že odešle registraci do závodu, se v abulce propojovací vytvoří řádek s id závodu a id závodníka.
Potom proběhne časový script, vezme z tabuly propojovaci všechny řádky kde id závodu splnuje podmínku datumu závodu a pro každý řádek to provede výpočet podle předem nastaveného vzorce a tento výsledek to zapíše do nové tabulky kam zapíše id závdu, id závodníka, tu naší hodnotu a to co z ní plyne.
Nebo mi tam nějaká tabulka vypadla?
Když pak budu chtít udělat ke každému závodu výpis přihlášených závodníků, tak vezmu tabulku propojovací a zobrazím ten řádek, kde id zavodu bude stejný z určitým závodem a id závodníka nahradím při výpisu jménem z tabulky A.
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Pomoc se strukturou MySQL
máš tam duplicitní data!
podívej se na "propojovaci" a "výsledky" vidíš tam tu duplicitu? ta je zbytečná
podívej se na "propojovaci" a "výsledky" vidíš tam tu duplicitu? ta je zbytečná
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Pomoc se strukturou MySQL
JJ vidim, takže sloupce "hodnota, tr.b., umístění" můžu vlastně hodit do tabulky propojovaci a tim jednu tabulku uplne vynechat.
A když pak budu u závodníka chtít vypsat historii jeho závodů, tak prohlédám sloupec id zavodnik a vypíšu zavod a umístění.
Takže když z posledních dvou tabulek udělám jednu, tak by mohla ta struktura fungovat?
A když pak budu u závodníka chtít vypsat historii jeho závodů, tak prohlédám sloupec id zavodnik a vypíšu zavod a umístění.
Takže když z posledních dvou tabulek udělám jednu, tak by mohla ta struktura fungovat?
-
- člen HW spec týmu
-
Elite Level 12
- Příspěvky: 16119
- Registrován: květen 08
- Bydliště: České Budějovice
- Pohlaví:
- Stav:
Offline
Re: Pomoc se strukturou MySQL
Ne, duplicita je tam idZavod. To je tam zbytečné. Každopádně doporučuji z vlastní zkušenosti - začínej každou tabulku primárním klíčem. Když mám tabulku Zavovdnik, tak PK volim idZavodnik, u tabulky Vysledky zase idVysledky, atd... Pak nemusíš přemýšlet, která tabulka má jaké PK.
Naposledy upravil(a) d1amond dne 19 led 2013 16:22, celkem upraveno 1 x.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?
Chcete si nechat sestavit nový počítač?
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Pomoc se strukturou MySQL
jj udělej si id_závod abys to mohl pak jednoduše editovat nebo odkazovat, případně dál rozšiřovat článkama atd.
je tu jednoduché pravidlo: každá tabulka musí mít primární klíč
teď je otázka jestli je lepší mít spojovací tabulku nebo v těch výsledcích mít obsaženou tu spojovací tabulku
já bych spíš tu spojovací tabulku vložil do té tabulky závody
je tu jednoduché pravidlo: každá tabulka musí mít primární klíč
teď je otázka jestli je lepší mít spojovací tabulku nebo v těch výsledcích mít obsaženou tu spojovací tabulku
já bych spíš tu spojovací tabulku vložil do té tabulky závody
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Pomoc se strukturou MySQL
Děkuji az radu s PK, hned to jdu napravit u již existujícich tabulek.
Ted moc nechápu jak vložit tu spojovací do té se závody. Když se přihlásí závodník na stránku, vybere si dostupný závod a přihlásí se do něho, tak aby se v nějaké tabulce objevilo Závodník X přihlášenej do Závodu Y. Do Závodu Y se ale může přihlásit více závodníků, ted nechápu ale jak by to fungovalo, kdyby se to zapisovalo do tabulky Závody
Děkuji za pomoc a omlouvám se, jestli mi nedochází úplně jasný věc
Určitě to není tak, že byhc byl líný hledat třeba na googlu, jenom nevím jak to nazvat, tak jeslti víte o nějakém tutoriálu, který by obsahoval hodně podobnou strukturu, budu rád, ať Vás nemusím otravovat.
Ted moc nechápu jak vložit tu spojovací do té se závody. Když se přihlásí závodník na stránku, vybere si dostupný závod a přihlásí se do něho, tak aby se v nějaké tabulce objevilo Závodník X přihlášenej do Závodu Y. Do Závodu Y se ale může přihlásit více závodníků, ted nechápu ale jak by to fungovalo, kdyby se to zapisovalo do tabulky Závody
Děkuji za pomoc a omlouvám se, jestli mi nedochází úplně jasný věc
Určitě to není tak, že byhc byl líný hledat třeba na googlu, jenom nevím jak to nazvat, tak jeslti víte o nějakém tutoriálu, který by obsahoval hodně podobnou strukturu, budu rád, ať Vás nemusím otravovat.
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Pomoc se strukturou MySQL
á je to zase v pr.. píšu dřív než vim co napsat 
samozřejmě tabulka výsledky

samozřejmě tabulka výsledky

PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Re: Pomoc se strukturou MySQL
Nechci zbytečně otvírat nové téma, potřebuji ještě jednu malou radu.
Je nějaký příkaz pro SQL na vložení náhodného čísla? Něco jako je v php Rand(x,y)
Je nějaký příkaz pro SQL na vložení náhodného čísla? Něco jako je v php Rand(x,y)
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 2
- 6779
-
od Dyonysos
Zobrazit poslední příspěvek
14 led 2025 16:19
-
- 5
- 19700
-
od Tay
Zobrazit poslední příspěvek
10 úno 2025 12:09
-
- 2
- 1776
-
od kurkisak
Zobrazit poslední příspěvek
02 pro 2024 18:11
-
- 8
- 2811
-
od atari
Zobrazit poslední příspěvek
30 zář 2024 10:04
-
-
PC do 20k (pomoc s dovýběrem komponent)
od insider » 27 zář 2024 16:46 » v Rady s výběrem hw a sestavením PC - 11
- 4061
-
od insider
Zobrazit poslední příspěvek
03 říj 2024 09:03
-
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti