sql - 我可以在表中有 2 个外键指向同一列吗?
问题描述
我有一个表交易代表两个基金之间的金融交易:
CREATE TABLE transact
(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
src_fund_id INT ,
dest_fund_id INT ,
units FLOAT,
FOREIGN KEY (src_fund_id) REFERENCES funds(id),
FOREIGN KEY (dest_fund_id) REFERENCES funds(id)
);
来源和目的地资金都来自同一张表Funds
。让两个 FK 指向同一列似乎是不可能的。在这种情况下,我应该以不同的方式设计我的数据库吗?
解决方案
是的,可以在同一列中创建两个 FK 点。
但最佳做法是在交易表中添加一列,其中包含表中的两列 Ids 以逗号分隔。
推荐阅读
- angular - 返回订阅结果作为承诺
- spring - Spring + QueryDsl + Mockito:如何为一个简单的函数编写单元测试用例
- python - python可以优化过多的名称绑定吗?
- reactjs - 如何修复`警告:文本内容不匹配。服务器:“一些数据”客户端:“正在加载...”`
- javascript - 如何在Angularjs中调用Javascript函数
- arrays - 如何在Matlab中的给定范围内迭代数组的每个元素?
- react-native - 推送通知在 iOS 中的 react-native-fcm 中不起作用
- php - Akeneo 产品变体导入信息可能吗?
- apache-kafka - 如何查看在不同服务器上运行的 kafka 主题
- python-3.x - 如何从给定概率分布的数组中选择一个数字