背景:编程菜鸟,也从来没用过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(仓库名称)