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

Postgres:Wiele do wielu vs. wiele kolumn vs. kolumna tablicy

Relacje wiele-do-wielu są tutaj jedyną realną opcją. Nie bez powodu nazywają to relacyjną bazą danych.

Czemu?

  • Dołączenia w rzeczywistości nie są tak drogie.
  • Wiele kolumn — liczba kolumn w twoich tabelach będzie ludicris i będzie to prawdziwe piekło dla programistów. Ponieważ każda funkcja dodaje migrację, ilość rezygnacji w Twojej bazie kodu będzie głupia.
  • Kolumna tablicowa — użycie kolumny tablicowej może wydawać się atrakcyjną alternatywą, dopóki nie zdasz sobie sprawy, że jest to w rzeczywistości tylko marginalna poprawa w stosunku do umieszczania elementów w ciągu oddzielonym przecinkami. nie masz integralności referencyjnej i żadna z korzyści organizacji kodu, które wynikają z posiadania modeli reprezentujących encje w Twojej aplikacji.
    Och i za każdym razem, gdy funkcja jest szarpana, musisz zaktualizować każdego z tych ponad 500 000 użytkowników. VS tylko za pomocą CASCADE.
class Feature
  has_many :user_features
  has_many :users, through: :user_features
end

class UserFeature
  belongs_to :user
  belongs_to :feature
end

class User
  has_many :user_features
  has_many :features, through: :user_features

  def has_feature?(name)
    features.exist?(name: name)
  end
end



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd podczas tworzenia bazy danych PostgreSQL przy użyciu Pythona, sqlalchemy i psycopg2

  2. Django Different nie działa

  3. Aplikacja Spring Boot 2.1 bez puli połączeń HikariCP

  4. Jak wyodrębnić numer tygodnia z daty w PostgreSQL?

  5. Wydajny sposób na pobieranie danych z drugiej bazy danych?