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ś
Categorynazwa 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ą.