当前位置: 代码迷 >> Sql Server >> 菜鸟问个初学者有关问题
  详细解决方案

菜鸟问个初学者有关问题

热度:21   发布时间:2016-04-24 09:31:26.0
初学者问个菜鸟问题
背景:编程菜鸟,也从来没用过MSQL,只是找了个MSQL的书在看
问题如下:
目前正在做一个管线数据库,
设计了“管点”、“管线”两个表
“管点”的项包括:ID、坐标X、坐标Y、高程.....等属性
“管线”的项包括:ID、起始管点、结束管点......等属性
想实现的效果:“管线”中的起始管点、结束管点与“管点”链接,对“管点”表的数据更改会影响管线表中的对应数据
目前的问题:起始管点和结束管点作为两个外键与管点表挂接,不符合数据库规范(一个懂点的同事说的)
求解决方案,希望能白话点,能给点比较基础的书或者参考资料

------解决思路----------------------
首先你的a表中运入仓库名和运出仓库名称是否都在b表的仓库名称中?如果不在肯定是不能作为外键的,外键值引用的肯定是主键的值,所以要匹配!
如果外键仓库名都在主键仓库名中,应该可以?那你是怎么加外键的?

create table b
(
  warehouse varchar(10) not null primary key
)

create table a
(
  output_warehouse varchar(10) references a(warehouse),
  input_warehouse  varchar(10) references a(warehouse)
)

--如果对现有表可以参考如下
alter table a
add constraint fk_约束名
foreign key(运入仓库名) references b(仓库名称)

alter table a
add constraint fk_约束名
foreign key(运出仓库名) references b(仓库名称)
  相关解决方案