🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195119

Re: [mysql] Łączenie danych z wielu tabel

#195119
From: geos
Date: Tue, 18 Oct 2016 10:18
37 lines
2562 bytes
On 18.10.2016 10:50, kamil.sobczyk@gmail.com wrote:
> Ogólnie problem jest taki, że tych "konkurencji" jest wiele. Dzieciaki oprócz biegów rywalizują też w rzucie piłką lekarską, skoku w dal itp. A liczba tych konkurencji może się zmieniać (pól/kategorii oceniania w danej konkurencji może być wiele, choć w każdej jest pole SUMA/PUNKTY). I pomiary są robione raz na kwartał.
>
> Zastanawiam się czy nie będzie lepiej jak stworzę sobie dodatkową tabelę, powiedzmy:
>
> Wyniki
> id_zawodnik (pk)
> id_szkolka (pk)
> rok (pk)
> kwartal (pk)
> punkty_b10 {default 0}
> punkty_b20 {default 0}
> punkty_b30 {default 0}
> ...
> punkty_skok {default 0}
>
> i w niej będę sobie na bieżąco aktualizował dane.

takie podejście jest podejściem hurtownianym. wydaje mi się, że narobisz 
sobie w ten sposób więcej pracy, bo każde dodanie dyscypliny będzie 
wymuszało dodanie kolumny dla odpowiednich punktów, tabela będzie się 
rozrastać wszerz, wiele kolumn z punktami będzie pustych.

na Twoim miejscu kierowałbym się raczej w stronę postaci znormalizowanej 
i zrobiłbym tak:

tabela zawodnicy(idz,...)
tabela kluby(idk,...)
tabela dyscypliny(idd,...)
tabela przejścia z kluczami (idz,idk,idd,idsz,rok,kw) i kolumnami (pkt,...)

w takiej konfiguracji dodanie dyscypliny to byłby jeden insert do tabeli 
dyscypliny. z tabeli przejściowej stosunkowo łatwo też będzie zrobić 
odpowiedni widok aby prezentował dane tak jak powyżej.

pozdrawiam,
geos
Technical Details
Message-ID: <5805f70b$0$642$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <f97272db-262f-4f16-912e-f32dacc7518b@googlegroups.com> <580536ce$0$5152$65785112@news.neostrada.pl> <f54591f8-2697-4abb-ae25-3575f5645bd6@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: [mysql] Łączenie danych z wielu tabel
Newsgroups: pl.comp.bazy-danych
References: <f97272db-262f-4f16-912e-f32dacc7518b@googlegroups.com> <580536ce$0$5152$65785112@news.neostrada.pl> <f54591f8-2697-4abb-ae25-3575f5645bd6@googlegroups.com>
From: geos <geos@SPAMPRECZ.autograf.pl>
Date: Tue, 18 Oct 2016 12:18:51 +0200
MIME-Version: 1.0
In-Reply-To: <f54591f8-2697-4abb-ae25-3575f5645bd6@googlegroups.com>
Lines: 39
Message-ID: <5805f70b$0$642$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 093105185217.warszawa.vectranet.pl
X-Trace: 1476785931 unt-rea-b-01.news.neostrada.pl 642 93.105.185.217:35991
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit