Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 885 Pomógł: 231 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%)
|
Witam,
Mam szybkie pytanie, acz odpowiedzi mogą być dłuższe. W pracy, ale nie tylko w pracy bo także w projektach OpenSource spotykam się z rozwiązaniami gdzie w kolumnach tabel baz SQL przechowywane są dane jako string JSON. Przykładem takiego projektu jest Wordpress. Który właśnie tak przechowuje tak dane, bardzo dużo danych. U mnie jako obiekt JSON przechowuje się dane klienta [adres, telefon, imię, nazwisko], czy parametry zamówienia. Pytanie czy jest to racjonalne podejście i efektywne z punktu widzenia programowania? Z jednej strony trudniej się przeszukuje takie dane, bo nie można wykonać zapytania który odwołuje się do obiektu bądź tablicy i trzeba tworzyć własne metody wyszukiwania treści, z drugiej strony, tabele MySQL są bardziej przejrzyste, bo nie rozciągają się na kilkanaście kolumn, często mających puste wartości. Jakie są wasze zdania na takie łączenie SQL i JSON? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Jeśli nie masz obsługi natywnej JSON to trzymanie takich struktur jest bez sensu z pkt widzenia MYSQL (Tutaj albo PgSQL albo NonSQL wchodzi).
Samo trzymanie JSON nie jest złe, ale zależy do czego. Ja np. trzymam jako JSON opcje konfiguracji czegoś tam gdzie i tak musiałbym pobrać z BD wszystkie opcje na raz. Tutaj mam 1 wiersz. Z przykład który Ty pokazałeś trzymanie JSON nie ma najmniejszego sensu. Nie ma tu co biadolić że tabelki brzydko wyglądają jak są puste czy coś. Nie ogląda się ich (IMG:style_emoticons/default/wink.gif) Jeśli z jakiegoś powodu boli cię szerokość tabel bo jest dużo pól a wiele z nich jest pusta w każdym rekordzie (w różnych rekordach mogą to być różne pola) to warto się zastanowić czy nie zmienić struktury na ilość. Czyli tworzysz tabelkę: id, type, type_id, name, value Wtedy np. masz: id, product, 1, price, 12 id, product, 1, color, red id, product, 2, color, green id, product, 3, price, 2000 Do takiej struktury dobrze jest mieć obiekt z mapowaniem i dostępnymi wszystkimi polami aby pobrane wiersze z BD od razu zmapować na pola klasy. Wygodniej bo nie musisz ręcznie potem sprawdzać czy Product hasColor = red. Reasumując. JSON można pchać o ile jak sam zauważyłeś nie będziesz w nim szukał, a dane które są tam zawarte są w 90% przypadkach muszą być pobrane wszystkie. Jeśli na dodatek masz obsługę natwyną przez BD to ten minus znika generalnie. @mmmmmmm ot żeś wymyślił. Ten post edytował Pyton_000 15.10.2016, 22:20:12 |
|
|
|
Tomplus [JSON][MySQL] Przechowywanie danych 15.10.2016, 19:59:58
Pyton_000 Mam nadzieję że usatysfakcjonuje Cię taka odpowied... 15.10.2016, 20:15:06
Tomplus Ja operacje JSON SQL znam, co nie znaczy że wszędz... 15.10.2016, 20:56:30
mmmmmmm Jak chcesz sbie trzymać dane w JSONie, to trzymaj ... 15.10.2016, 22:13:24
mmmmmmm @Pyton_000
Wymyśliłem to samo co ty, tylko napisał... 16.10.2016, 21:34:15 ![]() ![]() |
|
Aktualny czas: 1.01.2026 - 15:39 |