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软件是发现不了的,必须利用人工查找,否则在上线后会发生多个账务错误。
在改正错误的同时,要做好资料版本的控制,这个工作在多部门参与的数据整理工作中尤为重要。曾经有个客户,多个部门都在同时修改一份相同的资料,修改之后的文档中只有自己的一部分数据是正确的,其他部门数据还是错误的。在录入数据时,无论以谁的数据为准都是不行的,必须用正确的数据替换错误数据后进行合并才行。由此可见,针对每类数据都应该设置负责部门和负责人员,每次修改后由负责人员将文档的版本更新,同时旧版本数据也要保存。这样做可将误操作的损失降低到最小。
- 1erp系统数据
- 2erp如何维护
- 3进销存管理系统数据库
- 4ERP数据库恢复
- 5erp数据管理系统
- 6erp数据管理软件
- 7进销存管理数据库
- 8erp数据查询系统
- 9erp数据备份
- 10用数据库做个管理系统
- 11常见的数据库管理系统
- 12数据库与数据库管理系统
- 13erp大数据分析
- 14erp数据库模块
- 15通用数据库管理系统
- 16erp备份软件
- 17数据库管理系统包括
- 18常用数据库管理系统
- 19erp数据处理
- 20erp数据开发利用
- 21erp如何导出数据
- 22ERP系统数据库
- 23ERP数据采集
- 24ERP数据库修复
- 25erp主数据管理系统
- 26数据库管理系统是系统软件
- 27ERP系统数据库设计
- 28数据库管理系统
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼