![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 292 Pomógł: 0 Dołączył: 10.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zastanawiam się jak zapisac daty i godziny repertuaru kina. Mianowicie jak stworzyc tabele. Tworze na poczatek id, id_film, id_kina, i tutaj mam teraz klopot bo nie wiem czy stworzyc dwa dodatkowe pola data, godzina czy moze w wersji data_od, data_do, godziny_seansow W pierwszej tabeli bede mial duzo rekordow, ale wydaje mi sie ze ladniej i szybciej bedzie wyszukiwac repertuar danego kina i danego dnia ?! Co o tym myslicie i jak wy byscie to rozwiazali ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
wystarczy jedno dodatkowe pole timetamp
ja po poltora roku archiwalny repertuar zaczalem przenosic do innej tabeli(ilestam mln rekordow), bo troche zaczelo zamulac (tzn. dzialalo szybko, ale ram żarło jak smok) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 331 Pomógł: 30 Dołączył: 11.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
unix timestamp i w mysql masz pola typu int(11) lub po prostu pole typu DATE w mysql, zależy od tego, co Ci łatwiej obsłużyć po stornie php, ja osobiście korzystam z unix timestamp
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
tak btw. nie jestem purystą, ale w przypadku gdy chcesz wciskac godziny senasow w jedno pole to mocno zalatuje postacia "nienormalna" bazy (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
Dlaczego Timestamp a nie Datetime?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
timestamp ma 4 bajty, datetime 8. timestamp lyka 1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07, a w tym przypadku nie ma watpliwosci ze taki zasieg wystarczy
timestamp jest wiec mniejszy i szybszy, nie jestem pewien czy datetime mozemy uzyc w foreign key Ten post edytował yevaud 18.09.2010, 16:24:53 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
Cytat timestamp ma 4 bajty, datetime 8. timestamp A jakie to ma przełożenie na wydajność czy na zużycie zasobów systemu? Czy piszemy soft na mikrokontroler dla pralki czy lodówki czy innego urządzenia o bardzo ograniczonych zasobach? Co jest bardziej czytelne? '2010-01-10 01:01:01' czy 1263081661? Czy zyski z 4 bajtów zamiast 8 bajtów będą w ogóle zauważalne, a jeżeli tak to czy wynagrodzą nam koszty związane z faktem, że przechowujemy dane w mniej czytelnej postaci w związku z tym: - Programowanie będzie szło wolniej - Łatwiej o błędy w kodzie wynikłe z nieprawidłowej interpretacji danych odczytywanych bezpośrednio z bazy. Co gorsza timestamp jest uzależnione od strefy czasowej ustawionej na serwerze. Ewentualne błędy podczas konfiguracji serwera będą miały wpływ na nieprawidłowe działanie naszej aplikacji.. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 5 Dołączył: 19.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wtrącę się i dodam, że timestampem łatwiej operuje się funkcją date(); a taki string 2010-01-01 00:00:00 zmienić do innej postaci to już kombinowanie. Dodanie do tego kilku godzin i wyświetlenie itp to też klocki.
To moje osobiste zdanie na ten temat. Jak dla mnie tylko i wyłącznie timestamp - bardzo rzadko inna forma. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A jakie to ma przełożenie na wydajność czy na zużycie zasobów systemu? Czy piszemy soft na mikrokontroler dla pralki czy lodówki czy innego urządzenia o bardzo ograniczonych zasobach? wydawalo mi sie ze przelozenie na zuzycie zasobow systemu nie wymaga tutaj mechaniki kwantowej (IMG:style_emoticons/default/winksmiley.jpg) pamiec na indeks pola(a moze nie) i wartosci pola sa 8/4=2krotnie mniejsze. A tak bardziej serio to jak wspomnialem wyzej oraz jak wspomnial kolega ktory zadal pytanie, spodziewana ilosc rekordow moze przykroczyc 10^7 w przeciagu pol roku, wiec mysle ze jak mozna cos bezbolesnie zmniejszyc to dlaczego nie ? inna sprawa, ze tak na dobra sprawe to to nie jest jakos specjalnie wazne czy wybierzesz stamp czy datetime, ale skoro juz mialem rzucic przykladem to wybralem ten bardziej odpowiedni moim zdaniem do takiej struktury, w sumie to mam naprawde w dupie ktorego bedziesz uzywal (IMG:style_emoticons/default/smile.gif) Co jest bardziej czytelne? '2010-01-10 01:01:01' czy 1263081661? jeszcze mniej czytelne byloby jakbys to w lolcode zapisal, ale o ile mi wiadomo kazdy klient(mowimy o MySQL), wlacznie z konsola, wyswietla date w formacie sformatowanym, wiec nie wiem o czym mowisz Czy zyski z 4 bajtów zamiast 8 bajtów będą w ogóle zauważalne jak wspomnialem 8/4 = 2 (IMG:style_emoticons/default/winksmiley.jpg) mysle ze jesli cos jest dwukrotnie mniejsze to mozna to zauwazyc [...] a jeżeli tak to czy wynagrodzą nam koszty związane z faktem, że przechowujemy dane w mniej czytelnej postaci w związku z tym[...] jak wspomnialem wyzej, moze mowimy o innym silniku bazodanowym, nie wiem co robi postgres i nie chce mi sie sprawdzac Co gorsza timestamp jest uzależnione od strefy czasowej ustawionej na serwerze. Ewentualne błędy podczas konfiguracji serwera będą miały wpływ na nieprawidłowe działanie naszej aplikacji.. ewentualne bledy w konfiguracji daty na serwerze zawsze beda mialy wplyw na aplikacje Ten post edytował yevaud 19.09.2010, 18:04:16 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
Cytat a taki string 2010-01-01 00:00:00 zmienić do innej postaci to już kombinowanie Pewne minimum w znajomości biblioteki standardowej jest niestety konieczne. Sprawdź funkcję strtotime(); Cytat jeszcze mniej czytelne byloby jakbys to w lolcode zapisal, ale o ile mi wiadomo kazdy klient(mowimy o MySQL), wlacznie z konsola, wyswietla date w formacie sformatowanym Fakt z brakiem czytelności może się zapędziłem. Ale datetime i tak sie tu broni. I nie piszę o postgres w mysql także bedzie to prawdą. Timestamp nadaje sie tam gdzie zapisujemy date zapisu rekordu w bazie. Datę jakiejs operacji w systemie. Jeżeli zapisujemy datę w rozumieniu logiki biznesowej wtedy datetime jest właściwy. Cytat ewentualne bledy w konfiguracji daty na serwerze zawsze beda mialy wplyw na aplikacje Nie pisalem o bledach w konfiguracji daty a o bledach w konfiguracji strefy czasowej. Przy data time nie beda one mial wplywu na aplikacje. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 5 Dołączył: 19.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pewne minimum w znajomości biblioteki standardowej jest niestety konieczne. Sprawdź funkcję strtotime(); To fantastycznie, że chcesz mnie uczyć php ale czytaj ze zrozumieniem. "Zmienić do innej postaci" np do 01-01-2010 lub to co napisałem dalej. Nawet jeśli trzeba użyć tylko jednej ekstra funkcji to jest to kolejna, zbędna operacja ale jak piszę - zależy to od programisty i wygody. Starasz się narzucić swoje zdanie mi i koledze yevaud ale gra trochę nie warta świeczki. Są to przyzwyczajenia programistów co każdy z nas podkreślił i dał swoje argumenty do używania tej funkcji więc nie na miejscu jest pisanie, że 'wtedy datetime jest właściwy'. Dla Ciebie może właściwe ale dla mnie mniej wygodne. Ten post edytował ramol 20.09.2010, 05:59:41 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
Cytat Są to przyzwyczajenia programistów co każdy z nas podkreślił i dał swoje argumenty do używania tej funkcji więc nie na miejscu jest pisanie Nie funkcji tylko typu danych. Nie jest to kwestia wygody czy przyzwyczajenia. Każdy typ danych w bazie ma swoje przeznaczenie. Niestety swoje przyzwyczajenia musimy dostosowywać to rzeczywistości. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Strasznie się ~Smentek uwziąłeś na ten typ. ~Ramol użył poprawnego wyrazu: "funkcji". Czytaj ze zrozumieniem.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
Cytat Strasznie się ~Smentek uwziąłeś na ten typ. ~Ramol użył poprawnego wyrazu: "funkcji". Czytaj ze zrozumieniem. @yevaud Datatime i Timestamp to nie są funkcje. Rozmawiamy o użyciu datatime vs timestamp dla pola przechowującego datę, które to pole reprezentuje czas seansu i to jest podmiotem naszej dyskusji prawda? (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Zauważ jednak, że ~Ramol pisał o przerabianiu dat do innych postaci.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:32 |