![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 13.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam ponownie,
Powoli zbliżam się do końca prac, ale znów mam wydaje się banalny problem, ale na który nie potrafię znaleźć rozwiązania. Mam tabele w bazie "rosters", w której takie dane:
i dane z tej tabeli chcę sobie raz na jakiś czas przenosić do tabeli "teams_history", która wyglada tak:
Chcę pobrać z "rosters" team_id i wpisac do "teams_history " do player_1 , player_2 ....itd zawodników, których ma w tabeli rosters ów team_id. (nie wiem czy nie zamieszałem). Proszę o pomysł jak to rozwiązać. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Może ten artykuł Cię natchnie
![]() -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wygląda na to że źle sobie zaprojektowałeś bazę. Dwa błędy jakie widzę to to, że w tabeli historycznej trzymasz stałą liczbę zawodników. Zawsze wynosi 6? Po drugie po co przenosić te same dane do innej tabeli? Nie lepiej utworzyć jakiś widok który będzie korzystał z pierwszej tabeli?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 13.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Wygląda na to że źle sobie zaprojektowałeś bazę. Dwa błędy jakie widzę to to, że w tabeli historycznej trzymasz stałą liczbę zawodników. Zawsze wynosi 6? Po drugie po co przenosić te same dane do innej tabeli? Nie lepiej utworzyć jakiś widok który będzie korzystał z pierwszej tabeli? tak, zawsze jest 6 zawodnikow. A po co? "rosters" to aktualny sklad, na bieżącą kolejką. Teams_history to historia tych "rosterow". Chcę miec mozliwosc wrocenia do danych z poprzednich kolejek. Może ten artykuł Cię natchnie ![]() Wyższa szkoła jazdy jak dla mnie, "przedszkolaka" |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
tak, zawsze jest 6 zawodnikow. A po co? "rosters" to aktualny sklad, na bieżącą kolejką. Teams_history to historia tych "rosterow". Chcę miec mozliwosc wrocenia do danych z poprzednich kolejek. W takim razie nie potrzebujesz dodatkowej tabeli a jedynie widoku z odpowiednio napisanym zapytaniem. Możesz to również zrobić osobną tabelą, ale jak sam napisałeś to "wyższa szkoła jazdy". Sprawdź co to Widok w SQL i zastanów się czy to na pewno nie to czego szukasz ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 13.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
W takim razie nie potrzebujesz dodatkowej tabeli a jedynie widoku z odpowiednio napisanym zapytaniem. Możesz to również zrobić osobną tabelą, ale jak sam napisałeś to "wyższa szkoła jazdy". Sprawdź co to Widok w SQL i zastanów się czy to na pewno nie to czego szukasz ![]() "Widoki nie przechowują kopii zapisanych w tabelach danych." A mnie właśnie potrzeba jest kopia. A czy nie da się tak, zeby przypisane do team_id w tabeli dane "player_id" (6) przypisac do szesciu roznych zmiennych? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
"Widoki nie przechowują kopii zapisanych w tabelach danych." A mnie właśnie potrzeba jest kopia. A czy nie da się tak, zeby przypisane do team_id w tabeli dane "player_id" (6) przypisac do szesciu roznych zmiennych? Piękne zdanie... Trzeba się porządnie zastanowić co autor miał na myśli ![]() Nadal będę się upierał że widok w tym przypadku jest lepszy. I wcale nie potrzebujesz tego archiwizować w osobnej tabeli. Nie będziesz chyba usuwał rekordów z tabeli po archiwizacji? Bo po co? Plusy widoku są takie że czego byś nie robił UPDATE, DELETE, INSERT od razu wpływa na zawartość widoku. W przypadku tabeli archiwizującej potrzebujesz triggery które będą nad tym wszystkim czuwać. Ten post edytował ghost1511 28.03.2014, 13:50:12 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 13.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Piękne zdanie... Trzeba się porządnie zastanowić co autor miał na myśli ![]() Nadal będę się upierał że widok w tym przypadku jest lepszy. I wcale nie potrzebujesz tego archiwizować w osobnej tabeli. Nie będziesz chyba usuwał rekordów z tabeli po archiwizacji. Bo po co? Plusy widoku są takie że czego byś nie robił UPDATE, DELETE, INSERT od razu wpływa na zawartość widoku. W przypadku tabeli archiwizującej potrzebujesz triggery które będą nad tym wszystkim czuwać. Może opiszę od strony usera. User ustawia sobie sklad na mecz. Zaczyna się kolejka, ma zablokowane transfery - nie moze kupowac/sprzedawac zawodnikow. Zawodnicy ktorych ma są właśnie w tabeli "rosters". Podczas trwania kolejki user otrzymuje punkty. I teraz ważne. Przed ponownym umożliwieniem transferów chcę zapisać gdzies sobie sklad jaki miał w kolejce, poniewaz po ponownym uruchomieniu transferow, user moze wymieniac zawodnikow, a ja nie bede mial mozliwosc sprawdzenia jaki sklad mial w poprzedniej kolejce. Stad pomysl o tabeli teams_history. Co ważne, przy transferach zmieniają się własnie dane w tabeli "rosters" |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ale co chcesz zmieniać? Daj kolejną kolumnę ID_KOLEJKI.
USER 1 Kod USER_ID ID_ROZGRYWKI ID_KOLEJKI ID_DRUZYNY 1 100 10 1 1 100 11 2 Widzisz że USER 1 w trakcie rozgrywki 100 po 10 kolejce zmienił drużynę na 2 Ten post edytował ghost1511 28.03.2014, 14:02:31 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 13.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ale co chcesz zmieniać? Daj kolejną kolumnę ID_KOLEJKI. O tym myslalem i skoro nie da sie inaczej chyba do tego bede musial wrocic. A wyobrazalem sobie ze da się tak: Pobieram dane team_id i tych sześciu player_id przypiszę do sześciu róznych zmiennych... Naprawdę nie da się tak? ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Da się. Ale właściwie musisz napisać to samo zapytanie które będziesz miał w widoku.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 13.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 186 Pomógł: 18 Dołączył: 2.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Musisz wyniki złączyć joinem. Mniej więcej:
analogicznie dla reszty zawodników. Ten post edytował ghost1511 28.03.2014, 14:18:08 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 13.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Musisz wyniki złączyć joinem. Mniej więcej:
analogicznie dla reszty zawodników. Dziękuję z góry. Sprawdzę za kilka chwil. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:18 |