PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Colunas de tabela dinâmicas com base nas preferências do usuário


As abordagens usuais para isso são:
  • EAV
  • hstore
  • XML
  • JSON

Ver:

A coisa toda de "tornar colunas disponíveis para outros usuários" exige apenas que você mantenha uma tabela de "chaves personalizadas" que você adiciona sempre que um usuário define uma chave não utilizada anteriormente.

Adicionar colunas com DDL dinâmico parece razoável no início, mas há limites para quantas colunas você pode armazenar e quão "larga" uma linha pode ser. O desempenho da verificação da tabela piora à medida que você adiciona mais colunas, embora as colunas "esparsas" que são principalmente nulas sejam relativamente baratas. Um bloqueio exclusivo é necessário para adicionar uma coluna, algo que pode levar tempo para entrar em um sistema ocupado, embora adicionar a coluna seja muito rápido se ela não estiver definida como NOT NULL DEFAULT ... . Vai funcionar muito bem no começo, mas eu suspeito que você vai se arrepender de fazer isso mais tarde.