Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> formularz w bazie, mysql
Thuunder
post
Post #1





Grupa: Zarejestrowani
Postów: 234
Pomógł: 1
Dołączył: 29.10.2004

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


Witam,
Chciałbym zapisywać pytania i odpowiedzi z formularza w bazie. Odpowiedzi mogą być różne np. z pola textarea, inputów, checkboxów.
W jaki sposób trzymać te dane w jednej tabeli, żeby np. nie trzymać pola w bazie, które będzie zbędnie zabierało dużo miejsca w bazie przez co baza będzie się bardzo rozrastać?
jak to zrobić optymalnie?

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Stwórz sobie dodatkową kolumnę w której będziesz wpisywał jaki jest typ elementu formularza.
Go to the top of the page
+Quote Post
Thuunder
post
Post #3





Grupa: Zarejestrowani
Postów: 234
Pomógł: 1
Dołączył: 29.10.2004

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


ok, to wiem, ale chodzi mi bardziej o to jak zapisywać w bazie w jednej tabeli większe treści typu jakiś opis, wartości liczbowe, itp.? jaki typ pola ?
chodzi mi o to, żeby się dowiedzieć jak to zrobić poprawnie. Czy może zrobić rozbicie np. na wartość liczbową i wartość tekstową ... ?
chodzi o to,że raz będzie większy tekst(np.jakiś opis) jako rekord a raz mniejszy(np. jakaś wartość liczbowa np. kwota) ...

Ten post edytował Thuunder 7.10.2008, 15:18:44
Go to the top of the page
+Quote Post
zebupl
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


Witam,

Pola w bazie powinny odpowiadać Twoim polom w formularzu. To jakie typu ustawisz dla atrybutów zależy wyłącznie od Ciebie. Jeśli przewidujesz, że odpowiedz będzie długa to dajesz 'text' jeśli to jest pole input to zazwyczaj jest to varchar(250) jak number to number. Większej filozofii tutaj nie widzę.

Pozdrawiam
munky
Go to the top of the page
+Quote Post
AxZx
post
Post #5





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


Cytat(zebupl @ 8.10.2008, 11:39:16 ) *
Witam,

Pola w bazie powinny odpowiadać Twoim polom w formularzu. To jakie typu ustawisz dla atrybutów zależy wyłącznie od Ciebie. Jeśli przewidujesz, że odpowiedz będzie długa to dajesz 'text' jeśli to jest pole input to zazwyczaj jest to varchar(250) jak number to number. Większej filozofii tutaj nie widzę.

Pozdrawiam
munky


a czy nie ma czasem wiekszej filofi kiedy to pytania i odpowiedzi beda zapisywane w bazie, a pytania beda np typu select?
chyba trzeba wtedy dodatkowa tabele dla opcji dla select, radio, checbox.
no i pytanie czy osobna tabela na odpowiedzi wieksze niz 255 znakow, osobna dla liczb i osobna na tekst do 255 znakow?

podczas tworzenia pytania i odpowiedzi wybiera sie jaki rodzaj odpowiedzi i jaka glugosc. jezeli select mozliwosc dodawania poszczegolnych opcji do selecta.
z 2 tabel robi sie wtedy 8 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zebupl
post
Post #6





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


Witam,

Cytat
a czy nie ma czasem wiekszej filofi kiedy to pytania i odpowiedzi beda zapisywane w bazie, a pytania beda np typu select?
chyba trzeba wtedy dodatkowa tabele dla opcji dla select, radio, checbox.


AxZx nie rozumiem co chcesz mi powiedzieć (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
no i pytanie czy osobna tabela na odpowiedzi wieksze niz 255 znakow, osobna dla liczb i osobna na tekst do 255 znakow?


Nie wiem dlaczego piszesz osobna tabela ? Nie miałem też na myśli tworzenia n atrybutów do n pytań. Chodziło mi raczej o coś takiego (ans_id, ans_varchar, ans_text, ans_number, answ_boolen)

Cytat
podczas tworzenia pytania i odpowiedzi wybiera sie jaki rodzaj odpowiedzi i jaka glugosc. jezeli select mozliwosc dodawania poszczegolnych opcji do selecta.


nie rozumiem co chcesz mi przekazać (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) kurcze może wczesna pora (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
W jaki sposób trzymać te dane w jednej tabeli, żeby np. nie trzymać pola w bazie, które będzie zbędnie zabierało dużo miejsca w bazie przez co baza będzie się bardzo rozrastać?


Thuunder to czy będziesz trzymał wartość number w varce to nie ma znaczenia jeśli chodzi o wielkość. Chodzi tutaj o szybkość wykonywania operacji.

pozdrawiam
munky
Go to the top of the page
+Quote Post
Thuunder
post
Post #7





Grupa: Zarejestrowani
Postów: 234
Pomógł: 1
Dołączył: 29.10.2004

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


Wydaje mi się, że ma znaczenie dlatego, że liczby powinny być trzymane jako typ liczbowy.
Planuję zrobić z grubsza tabele pytania(id_pytania,rodzaj odpowiedzi jako id z tabeli słownikowej, pytanie), rodzaj_odpowiedzi(input, textarea,select itp.), i właśnie zastanawiam się w jakiej tabeli to zrobić,żeby to było optymalne i przy większej ilości danych działało jak należy oraz było zgodne ze sztuką tworzenia baz danych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
zebupl
post
Post #8





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


Thuunder zgadze się, że varki nie trzyma się w number i w drugą stronę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) bo i po co.

Co do rozwiązania, ja bym zrobił to tak:

Zakładam, że każde pytanie ma n odpowiedzi. Każda typ ma przyporządkowane n odpowiedzi

Relacje: 1:n (Question:Answers), 1:n (Answer_Types:Answers)

1. Tabela z pytaniami Questions (question_id, question_title, question_descritption, ...)
2. Tabela z odpowiedziami Answers (answer_id, answer_question_id, answer_answer_type_id)
3. Tabela z typami odpowidzi i samymi odpowiedziami Answer_Types (answer_type_id, answer_type_text, answer_type_number)

W tabeli questions przechowujesz pytanie jego opis. W tabeli Answers przechowujesz id pytania i id opowiedzi w postaci klucza do typu. Answer_Types przechowuje konkretne pytanie. Można to przenieść do Answers ale jest zasada, że encja nie powinna mieć więcej niż 16 atrybutów. Zresztą mieszanie psuje elastyczność.

Nie wiem czy o to chodziło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam
munky
Go to the top of the page
+Quote Post
AxZx
post
Post #9





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


dalej będę drążył temat bo chyba zapominasz o tym, że tworząc nowe pytanie mogę dać możliwość odpowiadania tylko w taki sposób, że wybieram odpowiedź z listy rozwijanej lub zaznaczam checbox lub radio.
Go to the top of the page
+Quote Post
zebupl
post
Post #10





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


Witam,

AxZx, i... ? Nie za bardzo widzę co chcesz mi przekazać, możesz to rozwinąć swoją myśl ?

Pozdrawiam
munky
Go to the top of the page
+Quote Post
AxZx
post
Post #11





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


ze zapomniales napis o tabelach z wartosciami do selectow, radio i checkboxow.
Go to the top of the page
+Quote Post
zebupl
post
Post #12





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


AxZx rozumiem ale to żaden problem.

Mam dwie tabele, żeby było dynamicznie to w jednej trzymam pytania (pytania = wartości pytań), coś na wzór słowników (id, number, text) a w drugiej tabeli mogę trzymać typy obiektów HTML w formi-e. Robię relację n:m czyli każdy obiekt HTML może mieć m pytań a każde pytanie może być przydzielone do n obiektów HTML

Pozdrawiam
munky
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: 15.09.2025 - 05:01