Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL][inne]zmiana w strukturze tabeli - jak postąpić
Forum PHP.pl > Forum > Przedszkole
wpaski
Chciałem się poradzić co zrobić w takiej sytuacji, są dane w tabeli w skrócie struktura wygląda tak:

data | jakaswartosc

i te dane są wyświetlane na stronie, rozróżniane wg tej daty czyli np. www.strona.pl/costam/2016-02-03

do czego zmierzam, teraz następuje zmiana tego układu w sensie, zmieniana jest wartość od pewnego okresu czasu czyli powiedzmy od dzisiaj: 2017-11-08
czyli tabelka musialaby wygladac tak

data | jakaswartosc | kolejnainnawartosc

jakaswartosc bedzie dostawac teraz null a kolejnainnawartosc bedzie wypelniana

i teraz na stronie musialoby to byc rozrazniane na zasadzie daty czyli dla starszych niz podana wczesniej data(dzisiaj - 2017-11-08) wyswietlalyby sie dane z "jakaswartosc" natomiast dla dat przyszlych (np.2017-11-09) bylyby wyswietlane dane z kolumny "kolejnainnawartosc"

to jest mój, wydaje mi się średni pomysł na rozwiązanie tego problemu, czy da się to jakoś lepiej/czytelniej rozwiązać?
mogę dać w tabelce komentarz, że np od 2017-11-08 jest nowa kolumna i dane w kolumnie "jakaswartosc" przestaja byc aktualizowane ale nie wiem...
tak samo jeśli znowu będzie taki przypadek to znowu kolejna kolumna kolejny if w kodzie strony? nie ma na to innego rozwiązania?
viking
Data powinna być ewentualnie jako dodatek a same dane rozróżniane po unikalnym id.
wpaski
data jest unikalna ale nie o to chodzi
nie wiem czy dobrze opisałem ten problem, w każdym razie data jest kluczem podstawowym, po co do tego tworzyć ID?
głównie chodzi mi o to jak sobie poradzić w sytuacji nowych danych w przypadku jeśli nie mogę ich wpisać w tej kolumnie istniejącej - bo te dane dotyczą całkiem czego innego a te w starej kolumnie od teraz nie będą aktualizowane
trueblue
Skoro wiesz od jakiej daty następuje zmiana wartości, to dlaczego wpisujesz wartość do innej kolumny (po co tworzysz nową kolumnę)?

A jeśli już bardzo potrzebujesz odrębnych kolumn, to możesz sprawdzić czy dana kolumna to null, jeśli nie, to wybrać z drugiej. W tym przypadku wcale nie musisz sprawdzać daty. Oczywiście pod warunkiem, że zawsze jedna z kolumn jest null.
wpaski
no właśnie nie wiem czy z tą nową kolumną to dobry pomysł dlatego pytam smile.gif

hmm wiem od jakiej daty następuje zmiana wartości, ale czy wstawianie nowej wartości (która dotyczy czego innego - ale ma być w tej tabelce bo dotyczy tego samego tematu co wartość w kolumnie która będzie nullem) do tej samej kolumny nie jest hmm nie wiem jak to ująć, niespójne/mylące? na przyszłość można o tym zapomnieć - a głównie o przejrzystość tej tabeli (i kodu PHP na stronie) na przyszłość mi chodzi.

pomysł z nullem zamiast sprawdzania daty - hmm no nie wpadłbym na to ciekawe ale znowu mnie nachodzą myśli czy będzie wiadomo o co chodzi, czy nie lepiej operować na dacie

sprawa jest też taka, że ta kolumna która zastępuje tamte dane to raz, a oprócz tego dochodzi kilka nowych, w przyszłości może dojść jeszcze kilka i wtedy się w tym człowiek pogubi.

można by też np stworzyć osobną tabelę pod konkretnie ten nowy schemat danych ? rozróżnianie po dacie i ładowanie odpowiedniej tabelki?
trueblue
Jeśli kolumna dotyczy czegoś innego, to odrębna kolumna.
To tak jakby chcieć zbierać imiona i nazwiska w tej samej kolumnie, bo do pewnego czasu użytkownik wypełniał tylko imię, a potem tylko nazwisko.
wpaski
ok dzięki
a tworzenie nowej tabelki dlatego, że są takie zmiany to dobry czy zły pomysł? chyba jednak zły bo a nuż znowu te stare kolumny będą dostawać dane więc wtedy w przypadku nowej tabelki nie mam tych starych kolumn

czyli rozróżnianie po dacie + nowe kolumny
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.