• 外键的学习


      这两天在开发一个资讯设备申请管理系统,我在设计数据库的时候遇到一个比较纠结的问题,那就是关于外键的定义的问题,因为我不知道哪些字段需要定义为外键,在什么样的情况下才定义外键,还有外键的定义方法,

    今天我拿到之前买的一本杨中科老师写的<<程序员的SQL金典>>研究了一下,终于解开了我的迷惑,所以以此来分享我所理解的外键.

    一,外键的定义:将两种数据库表通过字段关联起来的方式就被称为"表关联",其中关联到其他表主键的字段被称为"外键".

    二,外键的定义原则:一句话,当某个字段的值在表中重复出现的时候,我们就要考虑将它们提取到另外一张表中,然后在源表中引用新创建的表中的数据.

    三,外键的定义方法:foreign key (外键字段名称) references 目标表名 (被关联的字段名称)

     例如:create table T_Employee (FId int,FNumber varchar(50),FName varchar(50),FDepartmentId varchar(50),foreign key (FDepartmentId) references T_Department (FId))

    四,如果在创建表的时候没有添加外键约束,可以使用alter table语句添加外键约束,语法如下:

      alter table 表名 add constraint 外键名 foreign key (外键字段名称) references 目标表名 (被关联的字段名称)

      例如:alter table T_Book add constraint fk_book_author foreign key (FAuthorId) references T_Author (FId);

    技巧:关于操作数据库和写SQL语句时候的一些约定规范(或者称为一些好的习惯),这样可以避免与系统的关键字,标识符等冲突,增加程序的正确性,同时也利于维护.

      1,数据库名以"db_"开头.

      2,数据表名以"T_"开头.

      3,字段名以"F"开头.

      db(DataBase),T(table),F(Field)

     

  • 相关阅读:
    all the tops
    es6 and typescript
    [leetcode]question5: Longest Palindromic Substring
    webpack and publish lib
    HTTPClient to use http/https protocol to send request
    《算法导论》-分治法-笔记
    《Linux C编程一站式学习》-笔记
    WIN7中同时打开多个独立Excel窗口
    RAD Studio XE6之Tpanel
    vb中StatusBar1.Panels(3).Text = Format(Date, "yyyy年mm月dd日")是什么意思
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2172910.html
Copyright © 2020-2023  润新知