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

criar milhões de tabela em um banco de dados?


Se você precisa de um milhão de tabelas em seu banco de dados, está fazendo isso errado.

As tabelas destinam-se a representar dados estrutural e conceitualmente diferentes. E eu me recuso a acreditar que você está operando com um milhão de conceitos diferentes em sua aplicação.

Às vezes, os iniciantes acreditam que devem criar uma tabela por usuário, por exemplo. Mas "um usuário" é um conceito, e você armazena as mesmas informações para cada usuário (nome, e-mail, nome de usuário, senha, por exemplo), então deve ser um tabela, onde cada usuário é apenas uma linha separada.

Parece que você está cometendo um erro semelhante, talvez não com os usuários, mas com alguma outra abstração da qual você tem muitas instâncias. Cada instância deve ser uma linha em uma única tabela.

Se você nos descrever o que está tentando armazenar em um banco de dados, quase certamente podemos ajudá-lo a descobrir como deveria ser mapeado para tabelas.

Editar
depois de ler seus comentários (que realmente deveriam ser editados na própria pergunta), aqui estão meus pensamentos:

Se todos os dados estiverem estruturados da mesma maneira (como triplos), você pode simplesmente armazenar tudo em uma única tabela com três colunas e adicionar os índices necessários para pesquisas eficientes.

Se todos os predicados forem conhecidos antecipadamente, você poderia faça uma tabela por predicado, mas não tenho certeza de quanto sentido isso faria, mesmo.

A opção mais limpa provavelmente seria ter 4 tabelas:
(id, subject) , (id, predicate) , (id, object) ,(subjectid, predicateid, objectid) .