龙空技术网

ERP中“对象角色”型主数据结构介绍

堆知学苑 592

前言:

今天同学们对“数据库主码怎么写”可能比较珍视,同学们都想要学习一些“数据库主码怎么写”的相关文章。那么小编同时在网络上网罗了一些有关“数据库主码怎么写””的相关文章,希望你们能喜欢,兄弟们快快来了解一下吧!

导读:主数据管理在多系统集成和数据治理等方面极其关键,是信息化建设中非常重要的内容,需要特别的关注。

在介绍对象角色型主数据结构前本文先从常规的独立结构入手,以最常用的组织主数据为例,比如供应商、客户、单位等主数据,常见的方式是每种主数据单独一个数据库表管理(以下简称传统独立型主数据结构,如图1),这几种主数据是独立的,彼此并无直接的关系,每个数据库表中各自独立的管理着成千上万的主数据。

补充说明:从财务角度上简单看,只要是我们向他收钱的,他就是客户;只要是我们向他付钱的,他就是供应商;本文的单位指集团型企业的成员企业,即内部单位,如投资口径的。

图1:传统独立型主数据结构

从图1的例子可以发现两点:

第一点是同一家企业对我们公司来说有多种角色,示例中北京系统工程有限公司既是我们的供应商(向他付钱),同时也是我们的客户(向他收钱),同时还是我们下属的成员企业,虽然北京系统公司对我们来说有3种角色,有着对应的3条独立的主数据(也有相应的3个编码,作为供应商主数据其编码:10007957,作为客户主数据其编码:20013683,作为单位主数据其编码:30000159),但其实代表的始终都是北京系统公司这一家企业。第二点是北京系统公司虽然有3种角色和3条主数据,但这些主数据中有一部分内容是完全相同的,比如企业名称、社会信用统一代码、所属的国家地区和省市等,这部分内容是一些与业务无关的客观属性式的信息,是类似身份证性质的描述该企业自身固有属性的信息,与企业角色无关,即无论我们与该企业开展什么业务,是供应商还是客户,其名称、社会信用统一代码、国别地区等这些属性不会随业务而发生变化,始终是该企业固有的属性。

基于上述两点,就有了本文介绍的这种“对象角色”型的主数据结构,与传统结构的独立性不同,对象角色型是一种主从式的结构。还是以企业为例,首先把企业定义为企业对象并作为主表,然后把每一种业务类型定义为角色并作为从表,如图2。

图2:对象角色型主数据结构(主从一对多关系)

在对象角色型的主数据结构中,企业与业务无关的固有属性作为主表信息,而当这家企业与我们有了供应商关系时就为其建立供应商角色,当他与我们有了客户关系时再为其建立客户角色,……,然后把角色信息存入到对应的从表中。对象角色型主数据结构下,一家企业对我们来说无论有几种角色,在我们这里也只有唯一的一个主数据编码

下面简单说一下对象角色型和传统独立型两种主数据结构的在部分应用场景下的差异点:

在对象角色型结构下,企业固有的属性在主表中统一维护,而传统独立型则需要在多个地方去维护相同的内容。具体的比如企业更名,企业名称需要由原来的北京系统工程公司变更为北京系统工程有限公司。在对象角色型结构下,一旦企业与业务无关的固有属性发生了变化,只需要变更主数据的主表信息,不用变动各角色对应的从表信息,只对主表做1次修改操作;而如果是传统独立型,则要分别去修改供应商、客户和单位3张独立的数据库表,需要3次修改操作,因为三种主数据是独立管理的,如果变更管理不到位,可能容易出现其中一种主数据没变更或者变更不一致的情况。在对象角色型结构下,一家企业的多种角色通过主从表的结构天然建立了关系;而传统独立型,在一家企业既是客户又是供应商的情况下,如果希望记录这种双重角色的关系,就需要另外再通过一个数据库表单独存储这种关系,需要额外的数据维护成本。具体到应用场景中,比如数据分析时,希望同时分析我们与一家企业的应收账款和应付账款情况,如果是对象角色型结构,直接用统一的主数据码去财务数据库表中查找应收和应付数据即可(如图3);

图3:对象角色型直接使用统一的主数据码查询

如果是传统独立型结构,则需要先按企业名称或者社会信用统一代码在供应商主数据表和客户主数据表中检索,找到既是供应商又是客户的企业并把他的供应商主数据编码和客户主数据编码存起来,然后再用供应商主数据码去财务表中查找应付账款数据,用客户主数据码去查找应收账款数据(如图4)。

图4:传统独立型需要分别获得两种主数据编码查询

在信息化建设中,有些企业的主数据管理系统采用了上述这种主从式的主数据结构,比如在有的系统中把企业对象的主表信息称为基础视图,维护企业与业务无关的基本固有属性,把与业务相关的各种角色定义为各类业务视图(从表),如图5,比如采购视图、销售视图、财务视图(维护公司代码,统驭科目等)等。

图5:基础视图和业务视图的主从关系

这种主从式的主数据结构还可以有其它变形应用,比如客户主数据非常重要,或许可以作为单独的一类主数据重点管理,此时也可以采用两级结构,主表级是客户的身份证式的固有属性信息,从表级则根据企业不同业务板块的特点设计,按不同业态彼此独立管理每类业务个性化的内容,以更好的满足不同业务对客户主数据的需求,但无论是哪种业态的业务属性从表信息,都从属于一个客户主数据,都是用以描述客户属性的。

另外,SAP的ERP系统从S/4 HANA开始,有了业务伙伴BP(Business Partner),如图6,允许用户把供应商和客户合二为一的管理,即定义一个BP主数据(比如是一个企业),当发生采购业务时,扩展其供应商相关视图从而成为供应商主数据,当发生销售业务时,扩展其客户相关视图从而成为客户主数据,无论哪种角色,都是统一的一个BP,一家企业只有一个主数据编码。不过S/4也允许用户采用传统独立的方式,分别定义供应商和客户两类主数据,采用两种主数据编号序列,而在S/4之前的版本,则只能分开独立的管理两类主数据。

图6:SAP S/4 HANA的BP屏幕之一

与SAP的ERP系统类似,各类主数据管理系统此前很多采用的是传统独立型的主数据结构管理主数据,后续建设的一些主数据管理系统开始采用了本文这种对象角色型的主从结构(或者类似的主从结构)。而如果此前是传统模式下分别管理客户和供应商主数据的(有独立的两个编码),在希望改为采用对象角色结构的情况下,因为一家企业只有一个主数据编码了,那么此前的各类交易数据怎样兼容或者处理需要一定的考量(例如往年大量的财务账挂着独立的两种主数据编码等)。

标签: #数据库主码怎么写 #数据库主码是什么 #数据库中主码可以有多个吗