gpt4 book ai didi

MySQL:外键

转载 作者:行者123 更新时间:2023-11-29 00:59:46 25 4
gpt4 key购买 nike

很抱歉,如果这已经在某处得到回答,但我如何创建一个并不总是存在的外键。

示例:我有一个名为 invoice_payments 的表,其中包含 INT 列“type”和“cc_gateway”。我还有一个名为 invoice_cc_gateway 的第二张表。因为我可以接受多种支付类型(现金、cc 在线支付),所以我将支付类型存储在类型(0=现金,1=cc 网关)中,当它是来自网关的支付时,我想链接到特定的元素。

现在我的问题是,如果键始终存在,我知道如何将两个表链接在一起,但如果键不总是存在怎么办。如果我们有现金支付,我将 cc_gateway 设置为 0,因为它不相关。

过去,我只是在 cc_gateway 中为 0 创建了一个虚拟行,以便我的 key 始终匹配,但必须有更正确的方法来执行此操作。

提前致谢

最佳答案

改写的答案

抱歉,我之前有点快,当然你可以在网关表中有一个外键来引用通过网关支付的项目,但反之则不行(即项目表中的键链接到网关表)

如果键不会始终存在,则它不能是外键约束(引用资料),而是当该值存在时您必须加入网关表。

示例

select * from invoice_payments inv
left join invoice_cc_gateway gw
on inv.paymentId = gw.paymentId
where paymentType = 1
union
select * from invoice_payments
where paymentType = 0

关于MySQL:外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com