牛腩新闻发布系统——主外键关系的设置方法

16 篇文章 0 订阅


以前在接触数据库的时候,理论知识也没有学习过,做【学生信息管理系统】时是直接去做些简单的操作,后来看了《数据库系统原理》这本书,那个艰深晦涩就不说了,看了几遍之后,终于有些明白。时隔一年多结合现在正在做的【牛腩新闻发布系统】再去翻看的时候,明了许多。


下图是主外键的区别:

                            

 主键使用原则:

 1.应当是对用户没有意义的

 2.永远也不要更新主键

 3.不应包含动态变化的数据,如创建时间列

 4.应当由计算机自动生成


     外键使用原则:

      1、 为关联字段创建外键

2、 所有的键都必须唯一

  3、避免使用复合键

  4、外键总是关联唯一的键字段


结合【新闻发布系统】实例,根据主外键的使用原则,可以设置如下:

建立主外键的好处:

SQL中的主外键就是对表与表之间进行约束,主键保证了数据的唯一性,外键保证的是数据的完整性。

就拿【新闻发布系统】来说,<category>类别表指的是新闻的类别,<news>新闻表指的是各个类别下的新闻,<comment>评论表指的是各条新闻的评论,这里需要指出的是,一个新闻类别下可以有多条新闻,一条新闻下可以有多条评论。如果要删除一个类别的话,需要把这个类别下的多条新闻同时删除,同样,如果要删除一条新闻的话,需要把这条新闻下的多条评论同时删除,这里需要指出的是:类别表和新闻表、新闻表和评论表都是一对多的关系,这就是传说中的级联删除。如果不设置主外键的话,删除一个新闻类别,只能删除一个新闻类别,而这个类别的所有新闻并没有删除,而我们希望的是删除一个类别之后,其下的所有新闻都删除,方便快捷。

步骤一: 在外键表上右击,选择“关系”:


步骤二:外键关系对话框中,点击“添加”,在“表和列规范”项的右侧的小按钮:

                  

步骤三:在“表和列”对话框中,在主键表下方选择外键列所在的表和该外键列:

          

    步骤四:在外键表下方,只要选择表中与主键表的列相对应的列就可以:

             

    步骤五:如果还有外键关系需要建立,继续点击外键关系表里的“添加即可。

          

    


    【总结】其实,最关键的还是要弄清哪个是主表,哪个是外键表,然后直接在外键表上右击,选择关系即可建立两表的主外键关系,当然,可根据需要,一个表中可以有多个外键。刚开始碰到两表之间建立主外键关系的时候,建了好几次都没有成功,通过几次操作之后,就轻车熟路了。不建立主外键的好处就是数据可以随意写入或删除,但这样的同时会造成数据容易出现错误,造成数据冗余;建立主外键关系既可以保证数据的唯一性和完整性,又可以增加ER图的可读性,所以要合理利用好主外键关系。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值