Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Wiele danych, struktura tabeli
arturpiotrowski
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

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


Robię w bazie mysql tabelę z użytkownikami w którą użytkownik będzie mógł za pomocą formularza na stronie wpisać mnóstwo danych typu:
adres profili społecznościowych, email, adres strony www, wiek, telefon, płeć, miasto, zainteresowania, itp. razem powiedzmy 40-50 pól z możliwością wypełnienia. Pola nie byłyby obowiązkowe tylko dobrowolnie wypełniane, więc prawdopodobnie byłoby pusto w wielu kolumnach. Jak do tego zagadnienia podejść? Czy jest sens tworzyć jedną tabelę users z kolumną dla każdego pola, jeśli większość pól będzie prawdopodobnie pustych, czy lepiej w tym przypadku stworzyć tabelę users z danymi podstawowymi id,user_name,password,email drugą tabelę na przykład users_data z polami id,user_id|meta_name|meta_value powiązać je?
W tabeli users_data trzymać dane użytkownika w takiej postaci:
  1. id|user_id|meta_name|meta_value
  2. 1|58|facebook_url|https://facebook.com/jan.kowalski88547
  3. 2|58|adres|Warszawa, ul. Jasia Fasoli 8
  4. 3|58|gadu-gadu|123456789

Albo jeszcze inaczej tabela users_data zawierała by tylko pola id,user_id,user_data i w kolumnie user_id trzymałbym id użytkownika z tabeli users, a w user_data trzymałbym zserializowane dane użytkownika wpisane w formularzu.
Jak takie dane najlepiej przechowywać w bazie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
arturpiotrowski
post
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

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


Dzięki, tak zrobię to co będę chciał wyszukiwać, wrzucę w meta reszta w kolumnę JSON (IMG:style_emoticons/default/smile.gif) Edycję danych z tej kolumny json będę mógł wykonać bez problemu poprzez pola formularza? Dane z $_POST do arraya, array do jsona i fru do tabeli w bazie?

Jeśli chciałbym aby pewne dane usera mogły być edytowane / wyświetlane tylko jeśli posiada on rangę 'Premium' to dane "premium" wrzucić w oddzielną tabelę i mieć 3 tabele użytkowników 'users', 'users_data_basic', i 'users_data_premium' to będzie dobre rozwiązanie? Jeszcze jedno pytanie. Jeśli dane będę trzymał w postaci zserializowanej w bazie to jaki typ danych wybrać dla kolumny z tymi danymi? TEXT wystarczy, czy coś innego? Wyszukiwania po danych zawartych w tych tabelach nie planuje.

Ten post edytował arturpiotrowski 23.10.2017, 21:11:11
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 13:24