数据库外键约束。

我现在有如下两张表User:username(主键)passworduserKkndMessageBox:sendacceptthemetext(前三个字段为主键)sen... 我现在有如下两张表
User:
username(主键) password userKknd
MessageBox:
send accept theme text(前三个字段为主键)
send和accept必须在user表。应该怎样建立外键约束?哪个是主键表,哪个是外键表?
先在这谢谢了!
展开
 我来答
莫了未了
2018-04-19 · TA获得超过2864个赞
知道小有建树答主
回答量:59
采纳率:100%
帮助的人:2.4万
展开全部

数据库外键约束:这个是实现表与表之间的约束,从表的字段值必须在主表中。存在外键约束毕竟是一个约束,只是保证数据完整性的一个手段。

外键的概念:外键是关系数据库三个完整性的五个约束条件之一,是表与表之间建立的一种关系。在Oracle数据库的scott/tiger用户中,表Dept和Emp通过外键进行了关联。在这里Dept表叫主表,Emp表叫从表,外键是字段Deptno。

加入外键的条件:

1、两个表有相同属性字段,取值范围相同;

2、外键在主表中是主键或者是唯一字段;

3、外键可以是多个字段的组合。

数据库系统本身约束手段是更可靠的。对于开发来说,可能觉得建立外键关系没必要,但是到了以后维护阶段,或升级阶段,如果没有这个关系,可能不利维护工作的提升。表关系的建立,也阐述着具体的业务逻辑关系,增加了可读性。

在逻辑性,关联性比较强的时候不妨添加。其他时候简单的外键约束也是可以的,不需要一有关系就添加,但是要有其他机制保证数据完整性,毕竟外键对于开发有时候还是有限制。总的来说前期开发可以不管,后期维护尽量转移到数据库本身的约束来建立关系。

guoyang107
推荐于2017-11-25 · 超过13用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:34.1万
展开全部
说明send和accept都是user表的外键。
constraint f_key foreign key(send) references user(username);
constraint f_key2 foreign key(accept) references user(username);
对于messagebox主键表就是本身嘛,外键表自然就是user表了
即user表是messagebox表的父表。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逍遥郎1083
2012-05-18 · 超过10用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:25.7万
展开全部
没看明白你的意思,但主键最好用与业务无关的项(加个Id),外键则是关联另一个表的Id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
568265050
2012-05-18 · TA获得超过485个赞
知道答主
回答量:58
采纳率:0%
帮助的人:28.5万
展开全部
楼上的对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式