知识大全 ERP管理软件数据库系统的几种设计方法

Posted 数据库

篇首语:相逢意气为君饮,系马高楼垂柳边。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ERP管理软件数据库系统的几种设计方法相关的知识,希望对你有一定的参考价值。

数据库进阶:ERP管理软件数据库系统的几种设计方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   自增长primary key

  采用自增长primary key主要是性能 早期的数据库系统 经常采用某种编号 比如身份证号码 公司编号等等作为数据库表的primary key 然而 很快 大家就发现其中的不利之处

  比如早期的医院管理系统 用身份证号码作为病人表的primary key 然而 第一 不是每个人都有身份证;第二 对于国外来的病人 不同国家的病人的证件号码并不见得没有重复 因此 用身份证号码作为病人表的primary key是一个非常糟糕的设计 考虑到没有医生或者护士会刻意去记这些号码 使用自增长primary key是更好的设计

  公司编号采用某种特定的编码方法 这也是早期的数据库系统常见的做法 它的缺点也显而易见 很容易出现像千年虫的软件问题 因为当初设计数据库表的时候设计的位数太短 导致系统使用几年后不能满足要求 只有修改程序才能继续使用 问题在于 任何人设计系统的时候 在预计某某编号多少位可以够用的时候 都存在预计不准的风险 而采用自增长primary key 则不存在这种问题 同样的道理 没有人可以去记这些号码

  使用自增长primary key另外一个原因是性能问题 略有编程常识的人都知道 数字大小比较比字符串大小比较要快得多 使用自增长primary key可以大大地提高数据查找速度

   避免用复合主键 (pound primary key)

  这主要还是因为性能问题 数据检索是要用到大量的 primary key 值比较 只比较一个字段比比较多个字段快很多 使用单个primary key 从编程的角度也很有好处 sql 语句中 where 条件可以写更少的代码 这意味着出错的机会大大减少

   双主键

  双主键是指数据库表有两个字段 这两个字段独立成为主键 但又同时存在 数据库系统的双主键最早用在用户管理模块 最早的来源可能是参照操作系统的用户管理模块

  操作系统的用户管理有两个独立的主键 操作系统自己自动生成的随机 ID (Linux windows 的 SID) login id 这两个 ID 都必须是唯一的 不同的是 删除用户 test 然后增加一个用户 test SID 不同 login id 相同 采用双主键主要目的是为了防止删除后增加同样的 login id 造成的混乱 比如销售经理 hellen 本机共享文件给总经理 peter 一年后总经理离开公司 进来一个普通员工 peter 两个peter 用同样的 login id 如果只用 login id 作操作系统的用户管理主键 则存在漏洞 普通员工 peter 可以访问原来只有总经理才能看的文件 操作系统自己自动生成的随机 ID 一般情况下面用户是看不到的

  双主键现在已经广泛用在各种数据库系统中 不限于用户管理系统

   以固定的数据库 表应付变化的客户需求

  这主要基于以下几个因素的考虑

   大型EPR系统的正常使用 维护需要软件厂商及其众多的合作伙伴共同给客户提供技术服务 包括大量的二次开发

  如果用户在软件正常使用过程中需要增加新的表或者数据库 将给软件厂商及其众多的合作伙伴带来难题

   软件升级的需要

  没有一个软件能够让客户使用几十上百年不用升级的 软件升级往往涉及数据库表结构的改变 软件厂商会做额外的程序将早期版本软件的数据库数据升级到新的版本 但是对于用户使用过程中生成的表进行处理就比较为难

   软件开发的需要

  使用固定的数据库库表从开发 二次开发来说 更加容易 对于用户使用过程中生成的表 每次查找数据时都要先查表名 再找数据 比较麻烦

  举例来说 早期的用友财务软件用Access作数据库 每年建立一个新的数据库 很快 用户和用友公司都发现 跨年度数据分析很难做 因此这是一个不好的设计 在 ERP 中 很少有不同的年度数据单独分开 一般来说 所有年份的数据都在同一个表中 对于跨国公司甚至整个集团公司都用同一个 ERP 系统的时候 所有公司的数据都在一起 这样的好处是数据分析比较容易做

  现在大多数数据库系统都能做到在常数时间内返回一定量的数据 比如 Oracle 数据库中 根据 primary key 在 万条数据中取 条数据 与在 亿条数据中取 条数据 时间相差并不多

   避免一次取数据库大量数据 取大量数据一定要用分页

  这基本上是现在很多数据库系统设计的基本守则 ERP 系统中超过 万条数据的表很多 对于很多表中的任何一个 一次取所有的会导致数据库服务器长时间处于停滞状态 并且影响其它在线用户的系统响应速度

  一般来说 日常操作 在分页显示的情况下面 每次取得数据在 之间 系统响应速度足够快 客户端基本没有特别长的停顿 这是比较理想的设计 这也是大型数据库系统往往用 ODBC ADO 等等通用的数据库联接组件而不用特定的速度较快的专用数据库联接组件的原因 因为系统瓶颈在于数据库( Database) 方面(数据量大) 而不在于客户端(客户端每次只取少量数据)

  在 B/S 数据库系统中 分页非常普遍 早期的数据库系统经常有客户端程序中一次性取大量数据做缓冲 现在已经不是特别需要了 主要原因有

   数据库本身的缓冲技术大大提高

  大部分数据库都会自动将常用的数据自动放在内存中缓冲 以提高性能

   数据库联接组件的缓冲技术也在提高

  包括 ADO 在内的一些数据库联接组件都会自动对数据结果集(result set)进行缓冲 并且效果不错 比较新颖的数据库联接组件 比如 Hibernate 也加入了一些数据结果集缓冲功能

  当然 也有一些数据库联接组件没有对数据结果集进行缓冲 比如 JDBC Driver 不过几年之内情况应该有所改观 也有些不太成功的数据缓冲 比如 EJB 中的实体Bean 性能就不尽如人意 实体Bean数据也是放在内存中 可能是因为占用内存过多的缘故

cha138/Article/program/SQL/201311/16157

相关参考

知识大全 erp财务管理软体系统多少钱

erp财务管理软体系统多少钱建议购买前,楼主先下载软体试用下,erp软体多,但好用、能用的不多。国内目前也就那么几家,我所知道的用友,金蝶,商贸财神等等。你可以去了解一下他们的功能,这样更好的让你选择

知识大全 erp中库存记录的作用是?

erp中库存记录的作用是??观辰ERP系统中仓储管理模块的主要功能有:入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,综合批次管理、物料对应、库存盘点、等功能综合运用的管理系统,有效控制并跟踪

知识大全 erp 总账管理系统期末处理试验中,以出纳的身份进入总账系统了,没有银行对账的命令框。只有出纳签字 求解

erp总账管理系统期末处理试验中,以出纳的身份进入总账系统了,没有银行对账的命令框。只有出纳签字求解一般财务软件有如下两个设置、出纳签字和主管签字,如果设置出纳签字。那么涉及银行现金的凭证需要经过签字

“十三五”期间,企业资源计划(ERP)逐步普及,促进了( )与( )的初步融合,有效提升了单位服务管理效能和经营管理水平。

会计改革与发展十四五规划题目:“十三五”期间,企业资源计划(ERP)逐步普及,促进了()与()的初步融合,有效提升了单位服务管理效能和经营管理水平。A、合规管理系统B、管理信息系统C、会计信息系统D、

知识大全 VB.NET连接数据库的几种方法

VB.NET连接数据库的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Microsof

知识大全 ASP.NET项目开发指南:企业信息管理系统数据库概念结构设计

ASP.NET项目开发指南:企业信息管理系统数据库概念结构设计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 SQL数据库实现递归查询的几种代码方法

SQL数据库实现递归查询的几种代码方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SQL数据

知识大全 oracle数据库性能监控的SQL的几种情况

oracle数据库性能监控的SQL的几种情况  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  监控

知识大全 VB.Net连接各种数据库的几种方法

VB.Net连接各种数据库的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Microsof

知识大全 Java项目中连接数据库的几种方式和范例

Java项目中连接数据库的几种方式和范例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最原始的