主外键

winformwcf_003 2011-03-28 09:14:57
在数据库的表之间,设置无外键和不设置主外键,但是存在主外键关系这两种方式相比,有什么差别,分别适用于神马情况???
...全文
250 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
starrysky_net 2011-03-31
  • 打赏
  • 举报
回复
主外键提高效率,但是加上主外键就要操作数据库的时候保证数据的完成型。。。。就算不是主外键,各个表之间的关系很清楚啊。。。。
wlf535944903 2011-03-29
  • 打赏
  • 举报
回复
主键还是加上好 外键心里明白其实也可以啦~如果是很小的项目的话
刘婷婷 2011-03-29
  • 打赏
  • 举报
回复
数据库表要满足三大范式
effun 2011-03-29
  • 打赏
  • 举报
回复
暂且忽略范式和性能什么的,数据库中的主、外键可以很好地控制数据的规范性,减少或者避免出现垃圾数据,如果觉得自己写的程序很可以完美地处理这个问题,可以不用管。另外,很多ORM都是需要用到主键的吧。最后还有,我们用的大多数都是关系型数据库,如果没有主外键,那就怎么谈得上关系啊。
sswp7 2011-03-29
  • 打赏
  • 举报
回复
数据库虽然没有“主外键”,但是表与表之间的关联还是明了的,数据库结构简单的时候可无外键
cjh200102 2011-03-28
  • 打赏
  • 举报
回复
看表是不是要主外键,关键在于表与表之间是否有关联。
并不是所有的表都要外键
hebeijg 2011-03-28
  • 打赏
  • 举报
回复
效率低
confidenceyu 2011-03-28
  • 打赏
  • 举报
回复
范式要求 如果你没有键值的话 说明这是一个很失败的库
Daqing 2011-03-28
  • 打赏
  • 举报
回复
有主外键关系的表和没有定义主外键是有区别的,主键要求字段不为空且唯一,并且会自动生成一个聚集索引,外键依附于主键,可理解成主键的子集,但是外键要求不那么严格,可以为空,值也可以重复。(属于二范式)
定义主外键是必须的,不仅让数据库的到优化,对于往后列出表结构有帮助,表之间的关系很直观。
Joop_Song 2011-03-28
  • 打赏
  • 举报
回复
表比较多,一张表依赖于另一张表的数据,那么久要添加一个外键约束。。

google下,仔细了解下概念。。
  • 打赏
  • 举报
回复
那你的数据在很多张表的时候,你怎么取????
数据库表设计至少满足前三个范式
zilong4460072 2011-03-28
  • 打赏
  • 举报
回复
数据库表无主键、无外键
我到现在还没接触过这种表 不过我想它应该不满足第二范式吧
数据库表存在主外键
这张表的主键跟其他表有关联

最大的区别:第一种表基本上不会被用到
  • 打赏
  • 举报
回复
主、外键都是数据约束,同时都有索引,也就是说查询数据的时候会快很多
deepmist 2011-03-28
  • 打赏
  • 举报
回复
数据库结构简单的时候可无外键
kingdom_0 2011-03-28
  • 打赏
  • 举报
回复
表和表之间没有任何关联,结构简单的时候,主外键可有可无,对你的程序本身都没有影响,不过,对你的数据处理可能会带来不便,例如更新
有一点,不满足范式的原则
原来 2011-03-28
  • 打赏
  • 举报
回复
默认的依赖好了,或者oracle 的rowid 也是可以的
winformwcf_003 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cjh200102 的回复:]

看表是不是要主外键,关键在于表与表之间是否有关联。
并不是所有的表都要外键
[/Quote]

对的,小弟建的数据库虽然没有“主外键”,但是表与表之间的关联还是明了的。。。
fk1984316 2011-03-28
  • 打赏
  • 举报
回复
要遵循数据库的三范式,不然你的数据库基本没用。

110,538

社区成员

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

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

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