Notion Rollup Não Pode Referenciar Outro Rollup: Motivo e Soluções
🔍 WiseChecker

Notion Rollup Não Pode Referenciar Outro Rollup: Motivo e Soluções

Você tentou criar uma propriedade Rollup em um banco de dados do Notion que referencia outra propriedade Rollup em um banco de dados relacionado, mas o campo Rollup aparece desabilitado ou ausente na lista de propriedades de origem. Isso acontece porque o Notion restringe Rollups a puxar apenas de tipos de propriedade padrão, não de outras propriedades Rollup. O motivo técnico é que Rollups são valores calculados, não dados armazenados, e encadeá-los criaria riscos de dependência circular e problemas de desempenho. Este artigo explica por que essa limitação existe, como o Notion processa dados de Rollup e quais métodos alternativos você pode usar para obter o mesmo resultado.

Principais Conclusões: Restrição de Encadeamento de Rollup no Notion

  • Menu de seleção de propriedade Rollup: Mostra apenas tipos de propriedade padrão (Texto, Número, Seleção, Data, etc.) e propriedades Fórmula — propriedades Rollup são excluídas.
  • Relação de banco de dados + Rollup: Um Rollup só pode puxar dados do banco de dados diretamente relacionado ao banco atual, não de uma relação de segundo nível através de outro Rollup.
  • Propriedade Fórmula como solução alternativa: Use uma propriedade Fórmula para referenciar um valor Rollup e, em seguida, crie um novo Rollup que tenha como alvo a propriedade Fórmula em vez do Rollup original.

Por que o Notion Impede Rollups de Referenciar Outros Rollups

O Notion armazena propriedades Rollup como valores calculados que são computados dinamicamente quando você visualiza o banco de dados. Diferente de propriedades Texto ou Número, Rollups não contêm dados estáticos. Em vez disso, eles agregam informações de um banco de dados relacionado com base em uma propriedade de relação e uma propriedade alvo. Quando você tenta criar um Rollup que aponta para outro Rollup, o Notion precisaria resolver o primeiro Rollup e depois calcular o segundo Rollup com base nesse resultado. Isso cria uma cadeia de dependência que a arquitetura do Notion não suporta.

A limitação central vem de como o Notion lida com relações de banco de dados. Cada Rollup está vinculado a uma propriedade de relação específica. Se você tem o Banco de Dados A relacionado ao Banco de Dados B, pode criar um Rollup no Banco de Dados A que puxa dados do Banco de Dados B. Mas se o Banco de Dados B tem um Rollup que puxa do Banco de Dados C, você não pode criar um Rollup no Banco de Dados A que referencie esse segundo Rollup. O Notion precisaria percorrer dois saltos de relação e calcular dois Rollups, o que não é permitido.

Prevenção de Dependência Circular

Outro motivo é o risco de dependências circulares. Se o Banco de Dados A tem um Rollup referenciando um Rollup no Banco de Dados B, e o Banco de Dados B tem um Rollup referenciando um Rollup no Banco de Dados A, o sistema entraria em um loop infinito. O Notion impede isso limitando as fontes de Rollup apenas a propriedades que não são Rollup.

Desempenho e Atualização dos Dados

Rollups recalculam cada vez que o banco de dados carrega ou uma propriedade relacionada muda. Encadear Rollups multiplicaria o custo computacional. Para bancos de dados grandes com centenas de linhas, isso poderia causar lentidão perceptível. O design do Notion prioriza a responsividade em vez da agregação aninhada.

Passos para Contornar a Restrição de Encadeamento de Rollup

Você não pode criar diretamente um Rollup que referencie outro Rollup, mas pode usar uma propriedade Fórmula como intermediária. Uma Fórmula pode gerar o valor de um Rollup, e então outro Rollup pode ter como alvo essa Fórmula. Isso alcança o mesmo resultado sem violar as regras do Notion.

Método 1: Usar uma Fórmula como Intermediária

  1. Identifique o Rollup de origem
    Abra o banco de dados que contém o Rollup que você deseja referenciar. Anote o nome exato da propriedade Rollup. Para este exemplo, suponha que o Rollup se chame “Total de Vendas” e puxe a soma de vendas de um banco de dados relacionado.
  2. Adicione uma propriedade Fórmula ao mesmo banco de dados
    Clique no ícone + no cabeçalho da última coluna do banco de dados. Selecione Fórmula na lista de tipos de propriedade. Nomeie como “Fórmula Total de Vendas” ou um nome descritivo.
  3. Defina a Fórmula para gerar o valor do Rollup
    No editor de Fórmula, digite prop("Total de Vendas") (substitua “Total de Vendas” pelo nome do seu Rollup). Esta fórmula simplesmente retorna o valor do Rollup como número ou texto. Clique em Concluído.
  4. Crie o segundo Rollup no banco de dados de destino
    Vá para o banco de dados onde você deseja o Rollup final. Certifique-se de que ele tenha uma propriedade de relação vinculando ao banco de dados com a Fórmula. Adicione uma nova propriedade Rollup. Na configuração do Rollup, defina a Relação para a relação correta. Para o campo Propriedade, selecione a propriedade Fórmula que você criou (“Fórmula Total de Vendas”) em vez do Rollup original. Escolha a função de agregação (Soma, Contagem, Média, etc.). Clique em Concluído.

Método 2: Simplificar a Estrutura de Dados

  1. Avalie se um único Rollup pode ser suficiente
    Frequentemente, você pode redesenhar seus bancos de dados para evitar a necessidade de um Rollup de um Rollup. Por exemplo, se você deseja somar vendas em dois níveis de categorias, crie uma relação direta do banco de dados de nível mais alto para o banco de dados de nível mais baixo.
  2. Adicione uma propriedade de relação direta
    No banco de dados de nível mais alto, adicione uma propriedade Relação que vincule diretamente ao banco de dados de nível mais baixo. Isso pula o banco de dados intermediário completamente.
  3. Crie um Rollup usando a relação direta
    Adicione uma propriedade Rollup que use essa nova relação. Selecione a propriedade alvo do banco de dados de nível mais baixo. Aplique a função de agregação. Isso produz o mesmo resultado sem nenhum encadeamento.

Se a Solução Alternativa Ainda Não Funcionar

Propriedade Fórmula Mostra “Inválido” ou Vazio

Se sua propriedade Fórmula retornar um erro, verifique se o nome do Rollup na função prop() corresponde exatamente. Os nomes de propriedades do Notion diferenciam maiúsculas de minúsculas. Verifique também se o Rollup em si está calculando corretamente. Se o Rollup de origem mostrar “Sem dados” ou um erro, a Fórmula herdará esse problema.

Agregação do Rollup Produz Valores Errados

Ao usar a Fórmula intermediária, a função de agregação do Rollup se aplica aos valores da Fórmula. Se a Fórmula gerar texto como “R$100”, uma agregação de Soma falhará porque espera números. Certifique-se de que a Fórmula gere um tipo número. Use toNumber(prop("Rollup")) se necessário.

Propriedade de Relação Não Disponível no Banco de Dados de Destino

Se você não puder criar uma relação direta porque os bancos de dados já estão vinculados por outras relações, considere usar uma visualização de banco de dados vinculada. Crie uma visualização vinculada do banco de dados de origem dentro da página do banco de dados de destino e, em seguida, use Rollup nessa visualização. Esta é uma solução visual que evita o encadeamento de propriedades.

Tipos de Propriedade do Notion Que Podem Ser Usados como Alvo de Rollup vs. Os Que Não Podem

Tipo de Propriedade Pode Ser Alvo de um Rollup Observações
Texto Sim Funciona com Contagem, Mostrar Original, Mostrar Único
Número Sim Funciona com Soma, Média, Mínimo, Máximo, Contagem, Mostrar Original, Mostrar Único
Seleção / Seleção Múltipla Sim Funciona com Contagem, Mostrar Original, Mostrar Único
Data Sim Funciona com Mais Antigo, Mais Recente, Contagem, Mostrar Original, Mostrar Único
Caixa de Seleção Sim Funciona com Contagem, Mostrar Original, Mostrar Único
Fórmula Sim Funciona com todas as funções de agregação
Rollup Não Não pode ser selecionado como propriedade alvo
Relação Não Rollups exigem uma relação, mas não podem ter como alvo uma propriedade de relação
Data de Criação / Última Edição Sim Funciona com Mais Antigo, Mais Recente, Contagem, Mostrar Original, Mostrar Único
Criado por / Última Edição por Sim Funciona com Contagem, Mostrar Original, Mostrar Único

Esta tabela mostra que Rollup é o único tipo de propriedade calculada que não pode servir como fonte para outro Rollup. Propriedades Fórmula são permitidas porque são recalculadas independentemente e não dependem do contexto de relação de outro Rollup.

Agora você entende por que o Notion bloqueia Rollups de referenciar outros Rollups e tem duas soluções práticas: usar uma Fórmula intermediária ou simplificar a estrutura do banco de dados. Comece adicionando uma propriedade Fórmula ao banco de dados que contém o Rollup original e, em seguida, crie seu segundo Rollup tendo como alvo essa Fórmula. Para modelos de dados complexos, considere redesenhar suas relações para usar uma única relação direta em vez de encadear vários Rollups. Essa abordagem mantém seus bancos de dados rápidos e evita as limitações de propriedades calculadas aninhadas.