数据库表主外键问题

友君快乐 2012-07-27 06:04:27
数据库表主外键,建的太多会不会容易造成死锁吗(对死锁不了解哈)
如果以我个人的想法,搞一个数据库大多数表都是有主外键的,除非这个表是独立的。

我现在在一家软件公司,他们的一款软件,160多张,有主外键的表没几个。

我想问,这个主外键是不是也要适当使用。


...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
友君快乐 2012-07-30
  • 打赏
  • 举报
回复
数据库范式肯定是遵循的,比如说ERP系统吧,产品ID、操作员ID都属于基本信息,不管是进销存都要涉及到产品(半产品、产品等),那么就会有相应的主外键关系。那么产品ID就会关联到每张单据,这样主外键就会比较多吧,如果以我以前的想法,几乎每张表都有主外键。而且像单据类的主外键相对有好几个。
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
数据库表主外键,建的太多会不会容易造成死锁吗(对死锁不了解哈)
[/Quote]

没听说过!

我不知道你如何使用“太多”这个词儿。如果真的太多,那么就把多个表合并为单一一个表好了,只要尽量不违反关系数据库范式(也就是说尽量不要胡乱合并表)就行了!
  • 打赏
  • 举报
回复
业务逻辑在触发器里实现。。。是不是搞oracle的?这都是哪个年头的做法了??
贪玩的老鼠 2012-07-27
  • 打赏
  • 举报
回复
主外键可以保证数据的完整性,
表连接查询时,速度快!!

因此建议使用主外键
续写经典 2012-07-27
  • 打赏
  • 举报
回复
适当的运用
人生无悔 2012-07-27
  • 打赏
  • 举报
回复
主外键一般不太会用到的,性能影响有点大,而且多人开发时,业务逻辑在触发器中实现比较好,主外键能做的事,触发器中都可以了,维护起来也方便

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧