PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy używanie tablic w bazie danych to zły projekt?

Krótka odpowiedź na tytuł :Nie

Nieco dłuższa odpowiedź :

Powinieneś nauczyć się używać tablic, gdy jest to właściwe. Tablice same w sobie nie są złym projektem, są tak atomowe jak pole zmieniające postać (tablica znaków, nie?) i istnieją, aby ułatwić nam życie, a nasze bazy danych są szybsze i lżejsze. Istnieją problemy związane z przenośnością (większość systemów baz danych nie obsługuje tablic lub robi to w inny sposób niż Postgres)

Przykład:

Masz bloga z postami i tagami, a każdy post może mieć 0 lub więcej tagów. Pierwszą rzeczą, jaka przychodzi mi do głowy, jest utworzenie innej tabeli z dwiema kolumnami postid i tagid i przypisz tagi w tej tabeli.

Jeśli potrzebujemy przeszukiwać posty z tagidem, niezbędna jest dodatkowa tabela (oczywiście z odpowiednimi indeksami).

Ale jeśli chcemy, aby informacje o tagach były pokazywane tylko jako dodatkowe informacje o poście, możemy łatwo dodać kolumnę typu integer array w tabeli postów i wydobyć stamtąd informacje. Można to nadal zrobić za pomocą dodatkowej tabeli, ale użycie tablicy zmniejsza rozmiar bazy danych (nie ma potrzebnych dodatkowych tabel ani dodatkowych wierszy) i upraszcza zapytanie, umożliwiając nam wykonywanie naszych zapytań wybierających z łączeniem jednej tabeli mniej i wydaje się łatwiejsze do zrozumienia ludzkim okiem (ostatnia część jest w oku patrzącego, ale myślę, że tutaj przemawiam za większością). Jeśli nasze tagi są wstępnie załadowane, nie jest potrzebne nawet jedno dołączenie.

Przykład może być kiepski, ale jest pierwszym, który przyszedł mi do głowy.

Wniosek :

Tablice nie są potrzebne. Mogą być szkodliwe, jeśli użyjesz ich niewłaściwie. Możesz bez nich żyć i mieć świetną, szybką i zoptymalizowaną bazę danych. Gdy rozważasz przenośność (np. przepisanie systemu do pracy z innymi bazami danych), nie możesz używać tablic.

Jeśli jesteś pewien, że zostaniesz przy Postgresie, możesz bezpiecznie używać tablic tam, gdzie uznasz to za stosowne. Istnieją z jakiegoś powodu i nie są ani złe, ani niezgodne. Gdy użyjesz ich we właściwych miejscach, mogą trochę pomóc w uproszczeniu struktur bazy danych i kodu, a także optymalizacji miejsca i szybkości. To wszystko.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pg_dump bazę danych RDS Postgres?

  2. Jak utworzyć użytkownika tylko do odczytu w PostgreSQL

  3. 2 sposoby na pokazanie wszystkich baz danych w PostgreSQL (psql)

  4. Jak sprawić, by PyPy, Django i PostgreSQL współpracowały ze sobą?

  5. 2 sposoby zwracania wierszy zawierających znaki niealfanumeryczne w PostgreSQL