网站大量收购闲置独家精品文档,联系QQ:2885784924

MSSQL数据库表的主键设计问题及解决方案.pdf

MSSQL数据库表的主键设计问题及解决方案.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MSSQL数据库表的主键设计问题及解决方案.pdf

理论广角2012年12期(中) MS SQL数据库表的主键设计问题及解决方案 潘宏铭 (重庆工贸职业技术学院,重庆408000) 摘要:数据库表的主键设计.一般是根据业务需求情况,以业务逻辑为基础。形成主键。但这种方式会导致程序复杂、效率降低并且不利于分页等诸多问题 本文分析了此类问题产生的原因,并提出了行之有效的解央方案。 关键字:数据库;主键;设计 数据库的逻辑设计是一个很涉及面很 构存在着相当多的弊端,主要是导致程序复 VAL(序列名);删除序列:F DEL_SEQ(序 广的课题,其中有一些看起来微不足道的问 杂、效率降低并且不利于分页。为解决上述 列名);判断序列是否存在:F exists(序 SEQ 题,在开发应用中却会对数据库整个性能表 问题,笔者认为,当应用系统后台数据库表 列名)等。另外,在主从关系的表设计中, 现产生巨大的影响。在MSSQL数据库上进问存在主从关系时,数据库表额外增加一非 子表也使用序列字段作为唯一主键,将父表 行表设计时.对表的主键设计就是这样一个 业务字段作为主键,该字段为数值型;或者 的序列字段作为外键关联。 似小实大的问题。 当该表需要在应用中进行分页查询时。也应 由于系统使用一个额外增加一个字段 关于数据库表的主键设汁,一般而言, 考虑如此设计。一般来说,我们几乎可以为 作为主键,因此没有为业务逻辑建立主键约 是根据业务需求情况,以业务逻辑为基础, 任何表增加一个与业务逻辑无关的字段作 束。例如,在企业用户信息表中,要求企业 形成主键。例如,销售时要记录销售情况, 为该表的主键字段。 中用户登录名必须唯一。一般在创建表时, 一般需要两个表,一个是销售单的概要描 由于该字段要作为表的主键,那么其首 以登录名作为主键,这个时候在数据库层自 述。记录诸如销售单号、总金额一类的情况。 要条件是要保证在该表中要具有唯一性。同 然的创建另一个主键唯一性约束。而现在没 另外一个表记录每种商品的数量和金额。对 Server数据库自身的特性,可 时,结合SQL 有使用登录名作为主键,那么就没有这个约 于第一个表(主表),通常我们以单据号为 Server 以为其建立一个自增列。但是,SQL 束。解决办法如下: 主键;对于商品销售的明细表(从表),我 中的自增列却存在一个比较尴尬的事实,那 一是在数据库层解决。可以为该表创建 们就需要将主表的单据号也放入到商品的 就是该字段一旦定义和使用,用户无法直接 一个唯一(UNIQUE)约束或者唯一索引。 明细表中,使其关联起来形成主从关系。同 干预该字段的值。而是完全由数据库系统自 二是在应用端解决。也就是在应用中判 时该单据号与商品的编码一起,形成明细表 身控制,此时会带来如下几个问题: 断该列是否有重复值,然后根据判断结果来 的联合主键。这只是一般情况,我们稍微将 1.完全数据库系统控制。用户无法修改 保证唯一性。 这个问题延伸一下:假如在明细中,我们每 值 我们还会注意到。在之前的例子中,主 种商品又可能以不同的价格方式销售。有部 2.在数据库的发布和订阅时,使用自增 分按折扣价格销售,有部分按正常价格销 列会比较麻烦 引方式。关于如何设计索引,不是本文的重 售。要记录

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档