永发信息网

数据库表中可以在一个表里面有两个关联同一个表的外键吗

答案:2  悬赏:40  手机版
解决时间 2021-01-02 13:11
数据库表中可以在一个表里面有两个关联同一个表的外键吗
最佳答案
你要订单表中两个字段引用地址表中的一个字段,那你就在订单表中创建两个外键就行了:
ALTER TABLE order ADD CONSTRAINT address1 FOREIGN KEY (address_id) REFERENCES address;
ALTER TABLE order ADD CONSTRAINT address2 FOREIGN KEY (address_id) REFERENCES address;
你要删除的话:
delete from order where address1 = '1001' or address2 = '1001';
像这些数据,不建议做物理删除,也就是delete。你可以加一个状态字段,将它标识为无效就可以了。因为这些数据,对业务进行一些统计和数据分析都是有用的。再比如,我使用地址1下过一些订单,现在我搬家了,地址1就没用了,我要换另外一个地址。那我会删除地址1,再添加一个地址2,但我地址1的订单还是要看的吧,你总不能删除啊。而且在地址1的订单中,我要能看到地址1的地址信息。所以,这里对于地址删除,那就不能做delete了,只能做标识。标识无效后,只能代表地址在下单选择地址或一些其它操作的时候,这个无效的地址不显示,但在查看订单的时候,这个地址信息还是能显示出来的。
这个具体哪可以显示,哪不能显示,就要根据你的业务和实际情况来定了
全部回答
谢谢回答!!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海安到东台富安还要多久
求岩土工程勘察规范(GB50021-2001) 2009修订
罗的加偏旁是什么
梦见刮大风,我在风里骑自行车
山东开车去上海要多久
换缅币英文怎么说
危峰兀立怎么读
托尔斯泰怎么死的
路桥卡没刷新但有费用已交,上高速出示交费发
台式电脑怎样调亮度,用键盘上的什么功能键?
用4、5、7中的任意两个数组成一个最大的真分
七月结婚吉日
葱绿近义词是哪个
「批准」怎么翻译成英语?
martinlutherkingday是什么意思
推荐资讯
职务和职业的区别
一个边长是8厘米的正方形纸片,把他剪成一个最
旭的意思和含义是什么
石家庄哪个外卖平台待遇高?求解
在济南跑滴滴现在怎么样?
江西省南昌市洪城公证处在什么地方啊,我要处
玛雅太阳历一年是365.2420天,而现代人测算
怀孕早期41天做阴超,有坏处吗
炒股一万块给多少手续费
如何选择一种好的挂钩
根据下面语境,为空格处选择最恰当的词语(填
申请美国留学要准备哪些材料?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?