前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是 SAP CDS view 的 exposed Association

什么是 SAP CDS view 的 exposed Association

作者头像
Jerry Wang
发布2023-08-14 14:10:02
2610
发布2023-08-14 14:10:02
举报

SAP CDS 是 SAP HANA 数据库中的一种新的数据定义语言。它允许开发者定义语义富裕的数据模型,这些数据模型可以以数据库独立的方式在 ABAP 服务器上使用。因此,通过 CDS,开发者可以创建复杂的视图来构建 ABAP 程序或应用。

关联(Association)在 CDS 视图中是一个非常重要的概念。它在 CDS 视图中定义了两个实体(例如,两个数据库表或者两个 CDS 视图)之间的关系。这些实体通过某个特定字段(通常是主键和外键)相互连接。在定义关联时,我们需要指定关联的目标(也就是要关联的另一个实体),以及如何通过特定字段建立这两个实体之间的关联。

然后,我们来讨论 “exposed association”。“Exposed association” 是 SAP CDS 的一个特性,允许我们在定义 CDS 视图时明确地暴露或隐藏关联。这意味着,我们可以选择是否将定义的关联公开给 CDS 视图的消费者(例如,其他的 CDS 视图或者 ABAP 程序)。如果我们选择暴露关联,那么消费者就可以直接通过这个关联访问到关联的目标实体的数据。否则,如果我们选择隐藏关联,那么消费者就无法直接访问到关联的目标实体的数据。 下图高亮的 _scarr 就是 exposed association 的一个具体例子。

接下来,我们通过一个例子来详细解释 “exposed association”。假设我们有两个数据库表:Orders(订单)和 Customers(客户)。每个订单都有一个关联的客户。我们希望定义一个 CDS 视图,该视图包含订单的详细信息,以及与每个订单关联的客户的名称。我们可以这样定义这个 CDS 视图:

代码语言:javascript
复制
@AbapCatalog.sqlViewName: `V_ORDERS_AND_CUSTOMERS`
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: `Orders and Customers`
define view Orders_And_Customers as select from Orders as o
  association [0..1] to Customers as _Customer on $projection.CustomerID = _Customer.CustomerID
{
  o.OrderID,
  o.Product,
  o.Quantity,
  o.CustomerID,
  _Customer as Customer
}

在这个例子中,我们在 CDS 视图 Orders_And_Customers 中定义了一个关联 _Customer,它连接了 OrdersCustomers 这两个实体。我们通过 CustomerID 这个字段建立了这个关联。然后,我们在 CDS 视图的输出字段中包含了这个关联 _Customer。这样,我们就暴露了这个关联,使得 CDS 视图的消费者可以直接通过这个关联访问到 Customers 表的数据。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档