Muitos para muitos (array)

Collection field: Many to many (array)Community Edition+

Introdução

É possível usar um campo de array na tabela de dados para armazenar várias chaves exclusivas da tabela de destino e, assim, estabelecer uma relação muitos para muitos com ela. Por exemplo: existem duas entidades, artigos e tags. Um artigo pode estar associado a várias tags; na tabela de artigos, um campo de array armazena os IDs dos registros correspondentes na tabela de tags.

:::warning{title=Observação}

  • Sempre que possível, use uma tabela intermediária para estabelecer uma relação padrão de muitos para muitos e evite usar esse tipo de relação.
  • Para relações muitos para muitos estabelecidas com campos de array, atualmente somente o PostgreSQL permite filtrar os dados da tabela de origem usando campos da tabela de destino. Por exemplo: no caso acima, é possível usar outros campos da tabela de tags, como o título, para filtrar os artigos. :::

Configuração do campo

configuração do campo muitos para muitos (array)

Descrição dos parâmetros

Tabela de origem

A tabela de origem, ou seja, a tabela onde o campo atual está localizado.

Tabela de destino

A tabela à qual a associação será estabelecida.

Chave estrangeira

O campo de array que armazena, na tabela de origem, a chave do destino Target key.

Correspondência entre os tipos de campo de array:

NocoBasePostgreSQLMySQLSQLite
setarrayJSONJSON

Chave do destino

O campo correspondente aos valores armazenados no campo de array da tabela de origem, que deve ser exclusivo.