none
设计数据库时数据表之间建立关系的影响 RRS feed

  • 问题

  • 1、在建立数据库时,表之间不建立表之间的主外键关系。
     
    2、在建立数据库时,表之间建立表之间的主外键关系。
     
    请问下这两种方式那种好?
    • 已更改类型 ThankfulHeart 2014年1月6日 2:01 非一般常规讨论
    • 已移动 ThankfulHeart 2014年1月6日 2:03 SQL表设计问题
    2013年12月30日 2:16

答案

  • 你好:

    一般来说在设计一个数据库的时候,表的主键和索引是肯定必要的,但是外键就不一定。

    个人认为如果一个数据库系统规模比较小,表结构不是太复杂,系统开发人员不多,这种情况就没有必要添加外键关系,应用程序处理数据会相对简单灵活,但是要求对应数据库的应用程序没有数据处理的漏洞。

    而对于一些上规模的数据库,表比较多而且关系复杂,基于数据库的应用程序开发也比较多,流程比较长,在这种情况下为了保证数据的完整性和一致性就必须使用到外键,防止对数据库表的频繁且复杂的操作导致数据出现错误。应用程序也可以省掉数据完整性和一致性检查的步骤。

    我的建议是能用外键的就使用外键,不要为了程序处理起来简单省略掉外键。

    这里有一片博文讨论了这个问题,你可以参考一下:

    数据库设计中一个矛盾:数据库外键,用还是不用?你怎么看.?

    顺便说一下,这个论坛是Visual C#论坛,数据库相关的问题请发布到Sql Server论坛去。

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 齐永刚 2014年1月8日 7:03
    2013年12月31日 2:27