• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Json czy oddzielne tabele - duża ilość danych

Object Storage Arubacloud
0 głosów
202 wizyt
pytanie zadane 22 maja 2020 w SQL, bazy danych przez Greeenone Pasjonat (16,100 p.)
Hej,

Mam pewną zagwozdkę dotycząca przechowywania danych w bazie danych. Użytkownicy będą mogli przypisać różne dane do danej zakładki i przypisać dzień. Dane te są powtarzalne, tzn że mają opcje klonowania. Użytkownik wypełnia dane a następnie niżej ma "Dodaj kolejne dane" i tak dalej, i dalej. Może tych danych wypełnić ile tylko chce. Dane z aktualnego dnia są wyświetlane w panelu użytkownika. Tutaj nie wiem czy użyć json'a czy jednak tabel MySQL.

Mogę zrobić za pomocą relacji albo wszystkie dane z jednego dnia dać do jsona który będzie przechowany w bazie. Jedyną interakcją będzie podgląd danych oraz ich edycje (brak jakichś wyszukiwarek etc)

Początkowo chciałem zrobić relację, ale z moich obliczeń wynika, że po roku w tabeli może się znaleźć do (Przy 1 000 aktywnych użytkowników) 20 000 000 rekordów. Po użyciu Jsona, ilość ta zmniejszyła by się do 2 400 000 rekordów.

1 odpowiedź

+1 głos
odpowiedź 22 maja 2020 przez Comandeer Guru (601,110 p.)

20 mln to nie brzmi znowu jak jakaś kolosalna baza. Nie do końca też wiem, jak to obliczasz?

O wiele sensowniej IMO zrobić normalną relację. Wówczas nie trzeba będzie kombinować z obsługą JSON-a, bo dane będą ot tak dostępne bezpośrednio z bazy. No chyba że użyjesz tego nowego typu w MySQL, JSON – z tym że to IMO wciąż będzie bardziej skomplikowane niż zrobienie tego "tradycyjnie".

komentarz 22 maja 2020 przez Ehlert Ekspert (212,670 p.)

yes

Dodam od siebie że przy tabelach takich rozmiarów warto włączyć query loga, wybrać najczęstsze query i popracować explainem w celu ogarnięcia jakichś indexów.

komentarz 22 maja 2020 przez Greeenone Pasjonat (16,100 p.)
Hej, dzięki za odpowiedź.

Wytłumaczę na podstawie todo listy (Przyznaje, że moje tłumaczenie nie jest zbyt jasne).

Administrator dla każdego użytkownika może przypisać zgrupowane todo na dany dzień. Dajmy na to grafik otrzymuje dwie grupy todo na poniedziałek:

UI Design [Zrobić design logowania - resetowania hasła - strona główna]
UX design [Zrobić ux ustawień - czatu]

I teraz można zrobić tak, że tworzy w bazie grupę o nazwie UI Design a następnie przez relacje do UI Design przypisuje design logowania, resetowania hasła oraz strony głównej

Druga opcja nad którą właśnie rozmyślałem, to "spakować" todo do Json i stworzyć po prostu kolumnę [UI design] [lista todo w json]
komentarz 22 maja 2020 przez Comandeer Guru (601,110 p.)
Czyli używając JSON-a tak po prawdzie będziesz mieć duplikowane dane, o ile dobrze rozumiem? Bo zarówno UX, jak i UI, będą mieli ten sam task?
komentarz 22 maja 2020 przez Greeenone Pasjonat (16,100 p.)
Nie nie, ogólnym zamysłem było stworzeniu rekordu:
[ ID ][ Title ][ Tasks ][ Date ]
Wszystkie zadania lądowałby w jsonie do tasks.

Wydaje mi się jednak, że lepszym rozwiązaniem będzie tak jak pisałeś. Każdy rekord to jeden task i relacyjnie by się odnosiło do grupy
komentarz 22 maja 2020 przez Ehlert Ekspert (212,670 p.)
Albo nie rozumiem problemu, albo mamy tutaj prostą relację task - grupa 1:n. Zgadza się?

Podobne pytania

0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 3 lutego 2017 w SQL, bazy danych przez EasyPeasy Użytkownik (550 p.)
0 głosów
1 odpowiedź 513 wizyt
pytanie zadane 27 lipca 2020 w PHP przez Samek2222 Początkujący (440 p.)
–1 głos
2 odpowiedzi 516 wizyt
pytanie zadane 9 maja 2016 w PHP przez skrzatjedyny Gaduła (3,150 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...