ERP系统数据库设计
大型ERP等数据库系统常见的几种设计
目录
1. 自增长 primary key
2. 避免用复合主键 (compound primary key)
3. 双主键
4. 以固定的数据库、表应付变化的客户需求
5. 避免一次取数据库大量数据,取大量数据一定要用分页。
详细内容
1. 自增长 primary key
采用自增长 primary key主要是性能。早期的数据库系统,经常采用某种编号,比如身份证号码,公司编号等等作为数据库表的 primary key。然而,很快,大家就发现其中的不利之处。
比如早期的医院管理系统,用身份证号码作为病人表的 primary key。然而,第一,不是每个人都有身份证;第二,对于国外来的病人,不同国家的病人的证件号码并不见得没有重复。因此,用身份证号码作为病人表的 primary key是一个非常糟糕的设计。考虑到没有医生或者护士会刻意去记这些号码,使用自增长 primary key是更好的设计。
公司编号采用某种特定的编码方法,这也是早期的数据库系统常见的做法。它的缺点也显而易见:很容易出现像千年虫的软件问题,因为当初设计数据库表的时候设计的位数太短,导致系统使用几年后不能满足要求,只有修改程序才能继续使用。问题在于,任何人设计系统的时候,在预计某某编号多少位可以够用的时候,都存在预计不准的风险。而采用自增长 primary key 则不存在这种问题。同样的道理,没有人可以去记这些号码。
使用自增长 primary key另外一个原因是性能问题。略有编程常识的人都知道,数字大小比较比字符串大小比较要快得多。使用自增长 primary key可以大大地提高数据查找速度。
2. 避免用复合主键 (compound primary key)
这主要还是因为性能问题。数据检索是要用到大量的 primary key 值比较,只比较一个字段比比较多个字段快很多。使用单个 primary key 从编程的角度也很有好处, sql 语句中 where 条件可以写更少的代码,这意味着出错的机会大大减少。
3. 双主键
双主键是指数据库表有两个字段,这两个字段独立成为主键,但又同时存在。 数据库系统的双主键最早用在用户管理模块。最早的来源可能是参照操作系统的用户管理模块。
操作系统的用户管理有两个独立的主键:操作系统自己自动生成的随机 ID (Linux, windows 的 SID), login id。这两个 ID 都必须是唯一的,不同的是,删除用户 test 然后增加一个用户 test, SID 不同,login id 相同。采用双主键主要目的是为了防止删除后增加同样的 login id 造成的混乱。比如销售经理 hellen 本机共享文件给总经理 peter, 一年后总经理离开公司,进来一个普通员工 peter ,两个peter 用同样的 login id, 如果只用 login id 作操作系统的用户管理主键,则存在漏洞:普通员工 peter 可以访问原来只有总经理才能看的文件。操作系统自己自动生成的随机 ID 一般情况下面用户是看不到的。
ERP系统数据库设计的检查
(1)完整性检查:完整性即记录数量是否完整。可以请企业中有经验的人员复查或计算一下总数,将其和历史数据比较。同时还要检查字段的完整性,所有的ERP软件都有必须输入的字段,如果缺少这些字段就会造成系统的不稳定,如物料的提前期、默认仓库等。另外还有一些非软件要求的必须输入的字段,对企业今后的业务和统计分析有用的字段也要列入检查范围,例如客户分类和所属地区等。
(2)正确性检查:正确性的范围很广,这里不做一一说明,可以由企业自己根据需要制定检查原则。有些错误如会计科目是资产类型的,但是因为人为错误输入成负债类型的,再比如有的物料是采购来的,但是录入成自制件,这样的错误在系统上线前必须发现并改正。
(3)唯一性检查:数据的唯一性应该从两个角度检查,常见错误有多个实物编成同一个编码,如果以后录入系统,成熟的ERP软件会提示编码已经存在,并拒绝接受。同时一个实物对应多个编码的现象也必须杜绝,这种错误ERP软件是发现不了的,必须利用人工查找,否则在上线后会发生多个账务错误。
在改正错误的同时,要做好资料版本的控制,这个工作在多部门参与的数据整理工作中尤为重要。曾经有个客户,多个部门都在同时修改一份相同的资料,修改之后的文档中只有自己的一部分数据是正确的,其他部门数据还是错误的。在录入数据时,无论以谁的数据为准都是不行的,必须用正确的数据替换错误数据后进行合并才行。由此可见,针对每类数据都应该设置负责部门和负责人员,每次修改后由负责人员将文档的版本更新,同时旧版本数据也要保存。这样做可将误操作的损失降低到最小。
- 1数据清洗的对象及其对应的处理方法剖析
- 2大数据技术专业人才需要具备哪些技能和知识?
- 3数据编织与数据治理的深度融合分析
- 4企业数据孤岛现象产生的三个主要原因剖析
- 5大数据图表制作时应遵循哪三大核心准则?
- 6如何确保数据经营管理平台的可维护性?
- 7ERP数据管理软件的安装包包含哪些?实施步骤详解
- 8数据传输的效率如何影响数据传输的实时性?
- 9企业实施主数据管理有哪些关键要点?
- 10数据仓库为什么要进行分层设计?
- 11哪款ERP数据软件最好用且价格合理?
- 12实时数据同步的优缺点是什么?
- 13基于大数据的市场洞察与趋势预测具体做法分析
- 14数据挖掘流程中需注意的四个常见问题探讨
- 15如何评估大数据平台的效果和投资回报率?
- 16深度解析三维数字化数据大屏的构建步骤
- 17数据库驱动的进销存系统哪款好用?购买方式?
- 18数据治理平台的核心功能有哪些?
- 19为何将数据治理视为管理数据资产的最优框架?
- 20erp系统数据
- 21企业如何界定数据分析的类别及其目的?
- 22数据同步更新和数据增量更新之间的联系与区别概述
- 23互联网用户行为数据的分析流程是怎样的?
- 24新时代大数据竞争的关键因素有哪些?
- 25云数据存储的安全性该如何保障?
- 26探讨数据治理与数据中台之间的内在联系与相互作用
- 27多源异构数据融合的各层级数据融合方法详细阐述
- 28数据分布式存储系统如何进行数据恢复
- 29剖析大数据分析的五大基本支柱理论
- 30数据决策系统定义及功能的详细阐述
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼