天极Yesky
  • 笔记本电脑
    笔记本
  • 台式电脑
    台式机
  • 手机
    手机
  • 电脑硬件DIY
    DIY硬件
  • CPU
    主板
    音箱
  • 硬盘
    显卡
    键鼠
  • 内存光驱
    显示器
    机箱电源

  • 数码相机DC
    数码相机
  • MP3播放器
    MP3/MP4
  • 数码摄像机DV
    摄像机
  • 电脑外设
    外设
  • 网络
    网络
  • 服务器
    服务器
  • 数字家庭
    数字家庭
  • 群乐
    群乐
  • 产品报价 行情 经销商 渠道 评测 | 软件 设计 网页 开发 安全 论坛 E时代 游戏 图片 壁纸 下载 网摘 博客 索尼专区 Vista 科技奥运
    天极网
    外键
    作者: Rudy Limeback
    出处:
    责任编辑: 丁一凡
    [ 2004-09-28 11:23 ]


      外键用于限制不相关的数据输入到图表里。如果在前台处理,还有必要在后台生成一个外键吗?如果我在一个图表中有太多的外键,这会影响性能吗? 因为每个DML语句必须检查N个主图表。
    发表于04年9月24日

    你选择“不相关”这个形容词很有趣。“不好的”或“错的”可能更好。

     外键的用途是确保数据的完整性。它通常包括以下几种:
    实体完整性,确保每个实体是唯一的(通过主键来实施)

    域完整性,确保属性值只从一套特定可选的集合里选择

    关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值

      如果你在没有定义数据库的实际外键的情况,试图强制执行关联完整性,那你就会遇到数据库“断列链接”或“孤单记录”的风险。换句话说,数据的完整性会被破坏,你的数据库会含有不良数据,你的用户会很生气(或更糟)。

      你从来不能肯定你的前台程序是更改数据库数据的唯一手段。那是太危险了。此外,你在已经建好的数据库上花费不必要及大量的时间和精力来生成逻辑。你在没有合理理由的情况下再发明轮子。

      从来不存在“太多的”外键。 或者是业务需求需要的, 或者不需要。如果需要(例如,确保每个定单归属于一个已知的客户),那你必须实施它们。性能不是问题。不进行外键检查,你的查寻可能会快几微微秒,但如果数据库包含不良数据,你的用户会容忍这样的情况持续多久呢?

    相信我,科学地使用外键会远比自己使用或不使用好很多。

    笔名:
    请您注意:

     遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

     天极网拥有管理笔名和留言的一切权利。
    相关内容