
Na lição anterior, você aprendeu que as dependências de chave externa expressam relações entre tabelas de banco de dados. De modo semelhante, as associações expressam relações entre entidades CDS.
As associações são mais flexíveis do que as dependências de chave externa. Uma dependência de chave externa liga sempre uma tabela de chave externa a uma tabela de verificação. Uma associação pode vincular qualquer origem de associação a qualquer destino de associação. Em particular, existem geralmente duas associações entre as entidades CDS em que existe uma dependência de chave externa entre duas tabelas de banco de dados. Vejamos o exemplo:
A definição da tabela de banco de dados EMPLOYEE contém uma dependência de chave externa para o campo DEPMENT_ID, utilizando a tabela de banco de dados DEPMENT como tabela de verificação. R_Employee e R_Department são visões CDS que leem a partir dessas duas tabelas de banco de dados. No nível CDS, a dependência de chave externa corresponde a uma associação (relação) com R_Employee como origem e R_Department como destino. Ele vincula cada empregado ao respectivo departamento. No entanto, também pode haver uma associação (relação) na direção inversa, vinculando um departamento a todos os empregados que trabalham nesse departamento.

As associações são definidas na definição de dados da entidade CDS que serve como fonte de associação. Em nosso exemplo, esta é a definição da visão CDS R_Employee. A associação é definida na cláusula FROM, após a fonte de dados da visão. Uma definição de visão CDS pode conter qualquer número de associações.
Nota
O modelo de dados do SAP S/4HANA contém visões com mais de cem associações.
Uma definição de associação é composta pelas seguintes partes:
- Associação de destino
A associação à palavra-chave é seguida pelo nome do destino de associação, no nosso exemplo, esta é a visão CDS R_Department. O destino da associação deve ser sempre uma entidade CDS. É possível, mas não recomendado, que as associações em visões CDS utilizem tabelas de banco de dados como destinos.
- Nome da associação
O nome da associação vem após o suplemento AS e serve como um identificador para a associação. É recomendado que um sublinhado (_) seja utilizado como o primeiro caractere do nome da associação CDS. No exemplo, o nome da associação é _Department.
Nota
Do ponto de vista técnico, a definição de um nome de associação é opcional. Sem o nome da associação, o nome do destino da associação é usado como identificador para a associação. Isso pode dificultar a leitura do código e torna impossível ter mais de uma associação para o mesmo destino. Por isso, é vivamente recomendado definir um nome de associação para todas as associações.
- Condição de associação
A condição de associação começa com a palavra-chave ON. Normalmente, ele compara elementos de visão da fonte de associação para visualizar elementos do destino de associação, mas também são possíveis outras condições. No formato recomendado, os elementos de visão da fonte de associação estão à esquerda, com $projection. como prefixo, e os elementos de visão do destino de associação estão à direita, com o nome da associação como prefixo.
Nota
Uma vez que não é necessário incluir o campo de mandante na lista de elementos das visões CDS, o campo de mandante também não aparece na condição de associação.
Dica
Quando você define uma associação, utilize code completion (Strg + Space), para inserir as palavras-chave, o nome do destino de associação e os elementos de visão.




