Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Projekt bazy danych kalendarza osobistego.
matys88
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.05.2013

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


Witam,
potrzebuję pomocy przy zaprojektowaniu bazy danych do kalendarza.
Chciałbym zrobić to jak najlepiej, gdyż dobrze zaprojektowana baza danych to duży klucz do sukcesu,
więc podaje jak najwięcej informacji :

- kalendarz musi mieć numerowanie tygodni.
- informacja o tygodniach parzystych i nie parzystych
- wydarzenia przypisane do konkretnego dnia, albo trwające przez kilka dni.

Myślałem aby stworzyć tabele event z id , nazwą wydarzenia i datą.

schody zaczynają się teraz, gdy mam dobrać bazę pod taki kalendarz.
Stworzyć tabele miesiące z nazwami miesięcy, tabele tygodnie z ilością tygodni i tabele dzień z nazwami dni ?
tylko czy taki sposób jest poprawny i czy nie będzie stanowił jakiegoś dużego problemu z późniejszym wyciąganiem danych przez php.

Mam nadzieję, że ktoś mi pomoże.
Z góry dziękuję.

Go to the top of the page
+Quote Post
bpskiba
post
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Możesz tak zrobić i nie będzie to błędem.
Przemyśl natomiast, czy nie prościej będzie napisać parę funkcji w php. Wtedy w bazie można trzymać jedynie datę i obrabiać ją na etapie prezentacji.
Go to the top of the page
+Quote Post
matys88
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.05.2013

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


Czyli obrabiając dane przez php będzie prościej niż tworzenie tylu tabel.
Właśnie o to chodzi, żeby sobie nie komplikować za bardzo sprawy.
Jeszcze jedno pytanie.
Aby móc później wyświetlać numery tygodni i informacje o tym czy tydzień jest parzysty czy nie,
muszę stworzyć tabele tygodnie(id_tygodnia, wartość(parzysty, nieparzysty) i połączyć to z tabelą event(id_wydarzenia, nazwa, data) ?
Czy wystarczy mi tylko jedna tabela event(id_wydarzenia, nazwa, data) z której da się później za pomocą php wyciągnąć wszystkie dane które mnie interesują.
Chciałbym aby kalendarz wyglądał jak ten: http://fotografiadlaciekawych.pl/wp-conten...11-12mcy-v4.gif .
Z tą różnicą, że pod numerami są wypisane eventy a z lewej strony dodatkowa kolumna z numerami tygodni.

Wspominam, o wyglądzie, gdyż moje rozwiązanie może nie być praktyczne, bądź trudne do zrealizowania, a bardziej doświadczonej osobie może to trochę pomóc.

Pozdrawiam

Go to the top of the page
+Quote Post
bpskiba
post
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


http://php.net/manual/pl/function.date.php
Zwraca numer tygodnia w roku i wiele porametrów, których potrzebujesz.

Będziesz potrzebował w bazie tabeli "święta", gdyż w php mie ma funkcji wielkanoc(2013)

Ten post edytował bpskiba 3.05.2013, 13:42:34
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Każde wydarzenie powinno widnieć jako osobny obiekt w bazie danych posiadające datę rozpoczęcia i zakończenia. Dotyczy to również wydarzeń cyklicznych (cotygodniowych, corocznych itp.) - tutaj również każde powtórzenie wydarzenia powinno widnieć jako osobny obiekt w bazie. Ta tabela będzie dla Ciebie podstawą przy wykonywaniu zdecydowanej większości operacji związanych z wyświetlaniem, tworzeniem oraz przeszukiwaniem kalendarza.
2. Wyświetlanie numeru tygodnia dla danej daty jest dziecinnie proste:
  1. echo new DateTime('2008-08-07 18:11:31')->format('W');
Go to the top of the page
+Quote Post
matys88
post
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.05.2013

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


1. Pytanie odnośnie daty rozpoczęcia i zakończenia danego wydarzenia. Stworzyć osobną tabele data (id_daty, data_rozpoczecia, data_zakonczenia) Czy wszystkie dane trzymać w jednej tabeli event ? Który sposób jest bardziej praktyczny?
2. 2 sprawa czy jest jakaś funkcja, dzięki której mógłbym sobie ustawić ,że pierwszym miesiącem nie jest styczeń a np. marzec i od niego zaczyna się numerowanie tygodni i miesięcy ?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 12:24