Krótka odpowiedź do tytułu: Nie
Nieco dłużej odpowiedzieć:
Trzeba nauczyć się korzystać z tablic w razie potrzeby. Tablice nie są złymi projektami, są one atomowe jak zmienne pole znaków (tablica znaków, nie?) I istnieją, aby ułatwić nam życie, a nasze bazy danych były szybsze i lżejsze. Istnieją problemy rozważa przenoszenia (większość systemów baz danych nie obsługują macierze, albo zrobić to w inny sposób niż PostgreSQL)
Przykład:
masz bloga z postami i tagi, a każda wiadomość może mieć 0 lub więcej tagów. Pierwszą rzeczą, która przychodzi na myśl, jest utworzenie innej tabeli z dwiema kolumnami: postid
i tagid
i przypisanie znaczników do tej tabeli.
Jeśli potrzebujemy przeszukać posty z tagidem, to dodatkowa tabela jest konieczna (oczywiście z odpowiednimi indeksami).
Ale jeśli chcemy, aby informacje o znacznikach były wyświetlane jako dodatkowe informacje o poście, możemy z łatwością dodać kolumnę z liczbą całkowitą w tabeli wpisów i wyciągnąć z niej informacje. Można to jeszcze zrobić za pomocą dodatkowej tabeli, ale użycie tablicy zmniejsza rozmiar bazy danych (nie potrzeba dodatkowych tabel ani dodatkowych wierszy) i upraszcza zapytanie, pozwalając nam wykonywać nasze wybrane zapytania przy łączeniu z jednym mniejszym stołem i wydaje się łatwiejsze do zrozumienia przez ludzkie oko (ostatnia część jest w oku patrzącego, ale myślę, że mówię tutaj dla większości). Jeśli nasze tagi są wstępnie załadowane, nie jest wymagane nawet jedno sprzężenie.
Przykład może być słaby, ale jest to pierwsze, co przyszło mu do głowy.
Wnioski:
Tablice nie są konieczne. Mogą być szkodliwe, jeśli użyjesz ich niewłaściwie. Możesz żyć bez nich i mieć świetną, szybką i zoptymalizowaną bazę danych. Jeśli rozważasz możliwość przenoszenia (np. Przepisywanie systemu do pracy z innymi bazami danych), nie możesz używać tablic.
Jeśli jesteś pewien, że będziesz trzymać się PostgreSzu, możesz bezpiecznie korzystać z tablic tam, gdzie uznasz to za stosowne. Istnieją one z jakiegoś powodu i nie są ani złym projektem, ani niezgodnym z przepisami. Korzystając z nich we właściwych miejscach, mogą one pomóc w niewielkim stopniu dzięki prostocie struktur bazy danych i kodu, a także optymalizacji miejsca i prędkości. To wszystko.
Kto powiedział, że tablica nie jest atomowa? Nigdy nie przeczytałem tego stwierdzenia w instrukcji. –
Posiadanie komórki zawierającej wiele wartości nie jest projektem atomowym z tego, co przeczytałem. [Wikipedia] (https://en.wikipedia.org/wiki/First_normal_form) ma przykład. – Jash
Spójrz na tę http://stackoverflow.com/questions/20005804/storing-structured-data-in-a-database-column/20006970#20006970 q/a .; to samo dotyczy tablic. Tak długo, jak DB obsługuje typ danych i ma odpowiedni zestaw operatorów, wszystko jest w porządku. –