Pomoc se strukturou MySQL

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Minnie
nováček
Příspěvky: 20
Registrován: červen 12
Bydliště: Dolní Třebonín
Pohlaví: Muž
Stav:
Offline

Pomoc se strukturou MySQL

Příspěvekod Minnie » 19 led 2013 12:08

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

Reklama
d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod d1amond » 19 led 2013 13:01

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č?

Minnie
nováček
Příspěvky: 20
Registrován: červen 12
Bydliště: Dolní Třebonín
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod Minnie » 19 led 2013 13:56

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?

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod d1amond » 19 led 2013 14:10

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.
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č?

Minnie
nováček
Příspěvky: 20
Registrován: červen 12
Bydliště: Dolní Třebonín
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod Minnie » 19 led 2013 15:07

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.
Přílohy
tabulky.jpg

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomoc se strukturou MySQL

Příspěvekod CZechBoY » 19 led 2013 15:59

máš tam duplicitní data!
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

Minnie
nováček
Příspěvky: 20
Registrován: červen 12
Bydliště: Dolní Třebonín
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod Minnie » 19 led 2013 16:12

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?

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod d1amond » 19 led 2013 16:16

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č?

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomoc se strukturou MySQL

Příspěvekod CZechBoY » 19 led 2013 16:19

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
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

Minnie
nováček
Příspěvky: 20
Registrován: červen 12
Bydliště: Dolní Třebonín
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod Minnie » 19 led 2013 16:40

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.

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomoc se strukturou MySQL

Příspěvekod CZechBoY » 19 led 2013 16:42

á je to zase v pr.. píšu dřív než vim co napsat :D
samozřejmě tabulka výsledky :oops:
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

Minnie
nováček
Příspěvky: 20
Registrován: červen 12
Bydliště: Dolní Třebonín
Pohlaví: Muž
Stav:
Offline

Re: Pomoc se strukturou MySQL

Příspěvekod Minnie » 19 led 2013 22:38

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)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Pomoc při taktu Příloha(y)
    od ondyN » 14 led 2025 15:53 » v Taktování a další úpravy PC
    2
    6779
    od Dyonysos Zobrazit poslední příspěvek
    14 led 2025 16:19
  • Pomoc s webem
    od Tay » 09 úno 2025 15:53 » v Web-tipy a vaše weby
    5
    19700
    od Tay Zobrazit poslední příspěvek
    10 úno 2025 12:09
  • Pomoc s výběrem komponent
    od kurkisak » 02 pro 2024 14:48 » v Rady s výběrem hw a sestavením PC
    2
    1776
    od kurkisak Zobrazit poslední příspěvek
    02 pro 2024 18:11
  • Pomoc se zpomaleným notebookem
    od trefort » 29 zář 2024 14:02 » v Problémy s hardwarem
    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 4 hosti