外键/主键外键的主键

时间:2013-05-17 07:26:39

标签: sql database database-design relational-database database-schema

数据库中有表格,如

tbl_items
item_id        item_batch         item_name

(primay key = item_id + item_batch)

tbl_transaction(orders)_header
ordre_id      employe_id       date

(主键= order_id)

tbl_transaction_(orders)detail
(id)blind   order_id         item_code     item_batch  item_qty 

(主键=盲目识别列)(外键=来自tbl_items的item_code + item_batch)

tbl_warehouse
item_code      Item_batch       item_qty

主键(item_code + item_batch)

这里的混乱
i - 外键(item_code + item_batch to item_code + item_batch from tbl_transaction_detial)

或者这是正确的
II - 的 外键(item_code + item_batch到item_code + item_batch来自tbl_items)

该流程与其他用户创建新帐单一样,其ID和当前日期将存储在 transaction_header 中,而客户购买其详细信息的项目将存储在交易详情中然后更新仓库表

现在如果记录存在于交易标题中,则更新仓库

根据这个正确的外键关系 i或ii

1 个答案:

答案 0 :(得分:1)

所以解决你的第一个困惑:

transaction_table

外键将指向table_item主键

或以更好的方式你可以这么说。

transaction_table的{​​{1}} references 主键

外键

根据你的问题:

i)您的table_item不会包含任何transaction_header。我的意思是它不需要任何Foreign Key

来自Foreign Key

ii) Foreign Key将引用transaction_detail的{​​{1}}。

Primary key

iii) table_item将引用Foreign Key的{​​{1}}。

由于transaction_detail中的更改导致Primary Keywarehouse发生变化。

为了更好地理解,请阅读this