![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Mam problem z zaprojektowaniem bazy danych. W czym tkwi problem? Otóż chcę dodać do bazy rekordy, które dany użytkownik zaznaczy jako checkbox(choć niekoniecznie) w formularzu. Będzie ich 365 (lub więcej) z podziałem na ROK, MIESIĄC, DZIEŃ. przykład. "USER A" zaznacza w formularzu odpowiednie daty (jako checkbox) np. 15 kwietnia 2008, 16 kwietnia 2008 i 20 czerwca 2009. I ja te dane chcę dodać do bazy- aby "USER B" który szuka kogoś przypisanego do "15 Kwietnia 2008" otrzymał odpowiedź "USER A". Zapytania SQL nie potrzebuję, tylko rozplanowanie bazy. NIE wiem jak ją zaplanować, a biorę pod uwagę ze z trzy lata będzie potrzebne- więc to jest ok 1000 rekordów! Bardzo proszę o pomoc za którą z góry dziękuję. Pozdrawiam. miccom Ten post edytował miccom 19.02.2008, 14:33:15 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
a nie lepiej zrobic rozwijana liste, uzytkownik pobiera dzien, osobno, miesiac,rok. Nastepnie te 3 dane sa zapisywane do bazy danych
----- co do samej bazy to moze to byc date(),varchar(20) spokojnie wystarczy, poszukaj na googlach jak pobierac dane z rozwijanych formularzy. exmaple: Ten post edytował suchy1 11.01.2008, 15:47:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Chyba sie nie rozumiemy.
Nie mam problemu z dodawaniem danych do bazy. Jak je dodać wiem. Ale czy wyobrażasz sobie że user z listy rozwijanej dodaje 300 rekordów?? To nie jest 1 rekord. Tylko cały rok do dodania. Myślałem o checkbox, można wtedy zrobić aby kliknąć cały miesiąc jako (zaznacz wszystkie) a potem "odklikać" te co są zajęte. I tak cały rok. Proszę o podpowiedź co do rodzaju i nazw tabel w bazie danych. A jak ktoś skrobnie zapytanie SQL dodające 300 rekordów w jednej chwili- to już będę uradowany jak nigdy. Pozdrawiam. miccom |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Chyba sie nie rozumiemy. Nie mam problemu z dodawaniem danych do bazy. Jak je dodać wiem. Ale czy wyobrażasz sobie że user z listy rozwijanej dodaje 300 rekordów?? To nie jest 1 rekord. Tylko cały rok do dodania. Myślałem o checkbox, można wtedy zrobić aby kliknąć cały miesiąc jako (zaznacz wszystkie) a potem "odklikać" te co są zajęte. I tak cały rok. Proszę o podpowiedź co do rodzaju i nazw tabel w bazie danych. A jak ktoś skrobnie zapytanie SQL dodające 300 rekordów w jednej chwili- to już będę uradowany jak nigdy. Pozdrawiam. miccom Tak sobie mysle na szybko - czy nie bylo calkiem madrze zrobic to tak: 1. W HTMLu robisz wlasnie te checkboxy i dodajesz sobie buttona. Kazde nacisniecie buttona dodaje kolejna date (wynikajaca z obecnych ustawien checkboxow) do jakiegos ukrytego w formularzu lancucha. 2. Kolejne daty oddziela sie jakims znakiem np. srednikiem 3. Jak pojedziesz po calym roku to przesylasz ten formularz (submitujac) do PHP w naglowku POST (zmiesci sie spokojnie) 4.W PHP zmienna $_POST (lancuch) zamieniasz na tablice (explode) 5. 2 mozliwosci: a. zapisujesz w pliku tekstowym (jeden rzad - jedna data) po czym wrzucasz taki plik do bazy danych za 1 podejsciem (pamietam tylko, ze taka mozliwosc jest, nigdy z niej nie korzystalem) b. przechodzisz w petli przez wszystkie elementy tablicy i zapisujesz sie w bazie (kwestia, czy MySQL wytrzyma 365 insertow na raz) Pzdr. Mam nadzieje, ze pomoglem, Chlebik Ten post edytował chlebik 18.01.2008, 21:25:44 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dużego doświadczenia w projektowaniu baz danych nie mam, ale na moje oko masz tutaj klasyczną relację wiele [uzytkowników] do wielu [dni].
Musisz użyć trzeciej tabeli opisującej powiązania. Poszukaj w google: relacje wiele do wielu, junction table, tabela krzyżowa. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedzi. Przydały się. Temat nieaktualny.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:25 |