为什么要建立外键? 是为了维护数据的完整性!
以楼主的图例:
商品出库明细表和库存信息表之间就应该有外键 商品编码, 库存信息表为主表。 这样如果商品编码不在库存信息表中存在,即使你直接用代码方式写入商品出库表 也是不成功的。 这就保证了这2张表之间的数据不会出现冲突(库存里都没有的东西你出什么库!)
所以 这张图中的 供应商信息和供应商报价表之间要用供应商代码fk,订单和订单明细,采购和采购明细 销售和销售明细,两两间都要fk
如果商品信息这张表 是所有出入商品代码的汇总表的话,所有用到 商品编码 这个字段的表 都应该和 商品信息表 分别fk。
建立fk的充要条件就是: 只有主表中已经存在的条目,才允许在子表中存在。当你觉得2个表中的数据应该满足这种关系的时候 就建立外键