Czekam na użycie kolumny PostgreSQL o nazwie jsonb
dla nowego projektu backendu, który będzie głównie służyć jako JEST API REST-ful. Wierzę, że PostgreSQL's jsonb
będzie pasował do tego projektu, ponieważ da mi obiekty JSON bez potrzeby konwersji na zapleczu.jsonb i klucze podstawowe/obce: które działa lepiej w PostgreSQL?
Jednak czytałem, że typ danych jsonb
zwalnia podczas dodawania klawiszy, a mój schemat będzie wymagał użycia kluczy podstawowych i odwołań do kluczy obcych.
Zastanawiam się, czy posiadanie kluczy podstawowych/kluczy obcych w ich własnych kolumnach (w standardowy sposób relacyjnej bazy danych) i posiadanie kolumny jsonb
dla pozostałych danych byłoby korzystne, czy też mogłoby to powodować problemy (czy teraz lub w dół drogi)?
W skrócie, będzie:
table car(id int, manufacturer_id int, data jsonb)
wykonać lepiej lub gorzej niż:
table car(data jsonb)
Zwłaszcza, gdy patrzy się kluczy obcych często?
Czy pojawią się usterki w stosunku do pierwszego, z perspektywy wydajności lub schematu?
Dlaczego w ogóle chcesz używać 'jsonb'? Wygląda na to, że masz mniej lub bardziej ustalony schemat, a konwertowanie wierszy na JSON powinno być wystarczająco szybkie, abyś nie musiał się tym martwić. –
Dobre pytanie: mam dobre pojęcie o relacjach, których mój schemat będzie potrzebował, ale w tym momencie nie mam konkretnego zrozumienia informacji, których każda tabela będzie potrzebować, a jednocześnie mogłem za każdym razem wykonywać migracje bazy danych Rozumiem, że użycie jsonb pozwoliłoby mi na dobrą wydajność w połączeniu z łatwym sposobem dodawania rzeczy szybko. Może później, gdy będę miał bardziej konkretne zrozumienie potrzebnych danych, będę mógł wrócić do dobrej konfiguracji relacyjnej. Ale to nie jest kwestia pytania, które brzmi: czy jeden wykonuje lepiej/gorzej od drugiego? –
Ale i tak będziesz musiał zrobić kilka migracji, aby przepisać swój JSON, kilka ALTER TABLEs tu i tam nie powinno być przerażające, a jeśli następnie przepisują wszystkie swoje dane i kod, aby śledzić stale zmieniający się schemat być bardziej przerażającym. Jeśli chodzi o odpowiedź na pytanie, najpierw musisz zadać właściwe pytanie. Myślę, że musisz dowiedzieć się, jak wyglądają twoje dane, zanim zaczniesz przesuwać dane. Jeśli myślisz, że zamierzasz go przekreślić, a następnie wrócić i przeprojektować bazę danych, prawie na pewno się mylisz, to się nie stanie. –