数据库外键约束。
我现在有如下两张表User:username(主键)passworduserKkndMessageBox:sendacceptthemetext(前三个字段为主键)sen...
我现在有如下两张表
User:
username(主键) password userKknd
MessageBox:
send accept theme text(前三个字段为主键)
send和accept必须在user表。应该怎样建立外键约束?哪个是主键表,哪个是外键表?
先在这谢谢了! 展开
User:
username(主键) password userKknd
MessageBox:
send accept theme text(前三个字段为主键)
send和accept必须在user表。应该怎样建立外键约束?哪个是主键表,哪个是外键表?
先在这谢谢了! 展开
4个回答
展开全部
数据库外键约束:这个是实现表与表之间的约束,从表的字段值必须在主表中。存在外键约束毕竟是一个约束,只是保证数据完整性的一个手段。
外键的概念:外键是关系数据库三个完整性的五个约束条件之一,是表与表之间建立的一种关系。在Oracle数据库的scott/tiger用户中,表Dept和Emp通过外键进行了关联。在这里Dept表叫主表,Emp表叫从表,外键是字段Deptno。
加入外键的条件:
1、两个表有相同属性字段,取值范围相同;
2、外键在主表中是主键或者是唯一字段;
3、外键可以是多个字段的组合。
数据库系统本身约束手段是更可靠的。对于开发来说,可能觉得建立外键关系没必要,但是到了以后维护阶段,或升级阶段,如果没有这个关系,可能不利维护工作的提升。表关系的建立,也阐述着具体的业务逻辑关系,增加了可读性。
在逻辑性,关联性比较强的时候不妨添加。其他时候简单的外键约束也是可以的,不需要一有关系就添加,但是要有其他机制保证数据完整性,毕竟外键对于开发有时候还是有限制。总的来说前期开发可以不管,后期维护尽量转移到数据库本身的约束来建立关系。
展开全部
说明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表的父表。
constraint f_key foreign key(send) references user(username);
constraint f_key2 foreign key(accept) references user(username);
对于messagebox主键表就是本身嘛,外键表自然就是user表了
即user表是messagebox表的父表。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看明白你的意思,但主键最好用与业务无关的项(加个Id),外键则是关联另一个表的Id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询