【问题标题】:primary key to foreign key to foreign/primary主键到外键到外键/主键
【发布时间】:2013-05-12 07:19:26
【问题描述】:

数据库中有类似的表

tbl_items
item_id        item_batch         item_name

(主键 = 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 

(主键 = 盲均标识列)(外键 = item_code+item_batch from tbl_items)

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 from tbl_items )

该过程是当用户创建新账单时,其 ID 和当前日期将存储在 transaction_header 中,客户购买的商品详细信息将存储在 transaction details 中,并且然后更新仓库表

现在如果记录存在于事务标头中,则更新仓库

据此,正确的外键关系 i 或 ii

【问题讨论】:

  • 您的问题并不具体。 (orders) 是什么意思。?这是名义上的吗?无法理解tbl_transaction_(orders)detail
  • 这里可以用订单代替交易
  • 这个问题真的很让人困惑..!!

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


【解决方案1】:

所以理清你的第一个困惑:

transaction_table

外键 将指向table_item主键

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

外键来自transaction_tablereferences 主键来自table_item

根据你的问题:

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

ii) 来自transaction_detailForeign Key 将引用Primary keytable_item

iii) Foreign Key of transaction_detail 将引用 Primary Key of warehouse

由于transaction_detail 的变化导致warehouseitem_table 的变化。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-06
    • 2011-09-28
    • 2018-04-07
    • 2012-03-02
    • 1970-01-01
    • 2013-08-28
    • 2013-04-23
    相关资源
    最近更新 更多