> For the complete documentation index, see [llms.txt](https://help.flexbundle.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.flexbundle.com/workspaces/relacoes-entre-workspaces.md).

# Relações entre workspaces

Flexbundle abstraí e simplifica as principais funcionalidades de uma base de dados relacional. Numa base de dados relacional os dados são organizados em tabelas onde as colunas representam atributos e cada linha representa um registo.&#x20;

Como numa base de dados relacional, Flexbundle os dados são organizados em workspaces onde os campos representam propriedades e cada objecto representa um registo.

![](https://2065689993-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXCKWyYugQyRoPJPNkr%2F-MXi_G0a0wEi43NQlxeL%2F-MXiiOpLAnwY8dbaOdmk%2Fimage.png?alt=media\&token=04c41b42-57c0-4393-8ba9-e2b39ff70739)

Como numa base de dados relacional, podemos definir relações entre objectos através da criação de um campos  num workspace que referencia objectos em outro workspace. A ligação entre os workspaces é efetuada a partir do identificador único gerado pelo Flexbundle.

![](https://2065689993-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXCKWyYugQyRoPJPNkr%2F-MXi_G0a0wEi43NQlxeL%2F-MXilu63PYEe8LOFB_8s%2Fimage.png?alt=media\&token=e3ca2cdf-5c5b-4eb3-a61e-351414c1e492)

A relação acima expressa o seguinte:

* Um jogador pertence a uma equipa; e
* Uma equipa pode possuir um ou mais jogadores.

Numa base de dados relacional, para consultar informações sobre relações entre tabelas é necessário escrever *queries* SQL utilizando operações *JOIN*. No Flexbundle, após configuração das relações, todo esse processo é efetuado automaticamente.

### Como referenciar um workspace?

Os campos link e referência para um workspace permite criar relações entre workspaces.

![](https://2065689993-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXCKWyYugQyRoPJPNkr%2F-MXi_G0a0wEi43NQlxeL%2F-MXioY56TUPZ8tIq-D_M%2Fimage.png?alt=media\&token=aa5d7478-2af6-4064-8f68-06d5e6db24aa)

**1** - Opção de selecção do workspace a referenciar.

**2** - Campos passíveis de referenciação. Dentro desta lista, deve-se seleccionar os campos a referenciar.

**3** - Campos referenciados.&#x20;

**4** - Opção de adição dos campos seleccionados para referenciação.

**5** - Opção de remoção dos campos referenciados quando seleccionados.

### Qual a diferença entre link e referência para um workspace?

Links para workspaces efetuam um *snapshot* do objecto aquando da relação, ou seja, caso o objecto relacionado seja alterado, não alterará os dados no campo referenciado. Por outro lado, para a mesma situação, as referências para um workspace são automaticamente actualizados com a nova informação.

### Hierarquia de workspaces

Flexbundle permite a criação de hierarquia nos workspaces, ou seja, é possível criar um workspace (filho) que herda campos e permissões de um outro workspace (pai). Esta opção pode ser encontrada na página "Configurações" -> "Workspaces".

![](https://2065689993-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MXCKWyYugQyRoPJPNkr%2F-MXiJaGisfJGYR6SZTqI%2F-MXiNOBIxjQhqMD-aoBR%2Fimage.png?alt=media\&token=77ce6b2b-4d0a-4c4e-bc97-93c46aac091d)

Hierarquia de workspaces é bastante útil para situações em que é necessário separar informações por região ou departamento. Por exemplo, separar as oportunidades de venda por região sendo que, os comercias de uma região não conseguem ver/interagir com as oportunidades de uma outra região.

Não é permitido a configuração de campos nos workspaces filhos e, também, estes não herdam as configurações de workflow do pai.
