Z mojego doświadczenia wynika, że pobieranie i manipulowanie danymi z kolumn tablicy jest wolniejsze. Dlatego zazwyczaj wolę skojarzenia.
-
Mając kolumny tablicowe, nie jesteś tak elastyczny w zapytaniach DB.
-
Pobieranie danych z bazy danych jest szybsze dzięki asocjacjom.
-
Co się stanie, jeśli przechowujesz kategorie książek w bazie danych jako tablicę i zdecydujesz się zmienić nazwę jednej z kategorii?
Posiadanie skojarzenia to tylko zmiana jakiejś
Category
nazwa instancji, ponieważ jest połączona z innymi instancjami (na przykład książkami) przezid
. Z tablicą będziesz musiał iterować po całej kolekcji książek, aby zaktualizować nazwę kategorii.
Poszedłbym z użyciem array
, json
lub jsonb
kolumna do przechowywania niektórych metadanych, jeśli powiązanie jest przesadą.