Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy tworzyc dodatkowe pole w bazie ?
lectric
post
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 1
Dołączył: 22.08.2006
Skąd: universe

Ostrzeżenie: (0%)
-----


Witam,

Projektuje teraz baze sql i zastanawiam sie nad jedna rzecza. Mianowicie:

Do bazy beda dopisywani nowi zawodnicy:

tabela_zawodnik:
nazwa
wiek
typ_zawodnika
data_dodania

-----
Internauta bedzie listowal zawodnikow z uwzglednionym kryterium (typ_zawodnika), jesli typ_zawodnika = 1
wtedy na liscie wiersz z jego nazwiskiem zapisany jest pogrubiona czcionka przez okres od daty dodania do + 4 dni. Typ_zawodnika = 2 wtedy okres pogrubienia od daty dodania + 10 dni.

Teraz nie wiem czy dodac jeszcze jedno pole data_zakonczenia (zakonczenia pogtrubienia) w tabeli_zawodnik i wyswietlac pozniej przy listowaniu wykorzystujac between czy nie dodawac tego pola
i podczas listowania stworzyc funkcje ktora bedzie liczyla na bierzaca daty kazdego zawodnika .

Ktore rozwiazanie jest mnie obciazajace sprzet i lepsze waszym zdaniem ?

Dodam iz ilosc listowanych zawodnikow moze liczyc do 1000 pozycji.


--------------------
Potrzebujesz dodać darmowe ogłoszenia ?, w takim razie musisz odwiedzić to miejsce !
Presell - tutaj dodasz swoj artykul za darmo ! Presell Page dla wszystkich bez limitów i utrudnień
Masz firme ? Ta baza firm jest dla Ciebie i Twoich znajomych są też śmieszne filmiki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Nie rob jednoczesnie typu zawodnika i dwoch dat, bo bedziesz mial powielane dane:
data zakonczenia = data rozpoczecia + ilosc_dni[ typ_zawodnilka]

jak widzisz date zakonczenia mozna wyliczyc. Tak samo date rozpoczecia.

Wlasciwie wystarczy ci tylko zapisywac date zakonczenia, bo:
* nikt nie jest w stanie listowac zawodnika przed data jego dodania
* a typ zawodnika do niczego innego sie nie przydaje niz do okreslenie daty_zakonczenia
wiec przed zapisem wyznaczasz date zakonczenia, zapisujesz ja i przy wyswietlaniu nie musisz jej wyliczac (jakis maly zysk wydajnosci, jak zmierzysz bedziesz wiedzial jaki: przy dacie + typie pobierasz wiecej danych + dokonujesz obliczenia daty_zakonaczenia + Porownania; a takto tylko pobierasz mniej danych + porownania)


no chyba ze nie umiesciles calego opisu znaczenia wymienionych parametrow (np. mozna wielokrotnie zglaszac zawodnika do 'pogrubiania', typ_zawodnika znaczy cos wiecej, itp).


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
lectric
post
Post #3





Grupa: Zarejestrowani
Postów: 167
Pomógł: 1
Dołączył: 22.08.2006
Skąd: universe

Ostrzeżenie: (0%)
-----


dzieki, bardzo dobre rozwiazanie !

aha bede teraz przerzucal dane ze starej bazy do nowej. W starej bazie data_dodania zawodnika jest typu text smile.gif (ktos spiepszyl) a w nowej bazie oczywiscie data_dodania to typ date.
Czy jesli pobiore date ze starej bazy i przypisze ja do np. $data a nastepnie wrzuce do nowej bazy to bedzie wszystko ok ? Dane zostana automatyczne skonwertowane z typu text na date ?


--------------------
Potrzebujesz dodać darmowe ogłoszenia ?, w takim razie musisz odwiedzić to miejsce !
Presell - tutaj dodasz swoj artykul za darmo ! Presell Page dla wszystkich bez limitów i utrudnień
Masz firme ? Ta baza firm jest dla Ciebie i Twoich znajomych są też śmieszne filmiki
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Jesli robisz to w php to pole typu DATA jak i TEXT sa reprezentowane w php w postaci stringa, wiec: TAK, zostanie wszystko prawidlowo skonwertowane (bo przy insercie z php date podajesz jako string).


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
lectric
post
Post #5





Grupa: Zarejestrowani
Postów: 167
Pomógł: 1
Dołączył: 22.08.2006
Skąd: universe

Ostrzeżenie: (0%)
-----


w starej bazie format daty to DD-MM-RRRR natomiast w nowej bazie poprawne pole z data typy date ma format RRRR-MM-DD, kiedy przenosze z jednej do drugiej bazy date otrzymuje zapis 0000-00-00.
Nie tak latwo jednak.

Tak sie zastanawiam czy moze da sie zmienic format zapisu daty w nowej bazie z obecnego na DD-MM-RRRR ?

Ten post edytował lectric 11.03.2007, 16:18:33


--------------------
Potrzebujesz dodać darmowe ogłoszenia ?, w takim razie musisz odwiedzić to miejsce !
Presell - tutaj dodasz swoj artykul za darmo ! Presell Page dla wszystkich bez limitów i utrudnień
Masz firme ? Ta baza firm jest dla Ciebie i Twoich znajomych są też śmieszne filmiki
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


MAsz funkcje w php do konwersji dany, strtotime() + date(), ew jakies inne


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
lectric
post
Post #7





Grupa: Zarejestrowani
Postów: 167
Pomógł: 1
Dołączył: 22.08.2006
Skąd: universe

Ostrzeżenie: (0%)
-----


tak ale jest to typ string czyli bede zmuszony najpierw porozdzielac zmienna z "-" pomiedzy cyframi w dacie ?

ok juz jest super, podam rozwiazanie moze sie komus przyda smile.gif

$nowa_data = explode('-',$stara_data);

$dzien = $nowa_data[0];
$miesiac = $nowa_data[1];
$rok = $nowa_data[2];

Ten post edytował lectric 11.03.2007, 16:34:06


--------------------
Potrzebujesz dodać darmowe ogłoszenia ?, w takim razie musisz odwiedzić to miejsce !
Presell - tutaj dodasz swoj artykul za darmo ! Presell Page dla wszystkich bez limitów i utrudnień
Masz firme ? Ta baza firm jest dla Ciebie i Twoich znajomych są też śmieszne filmiki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 19:56