当前位置: 首页 > 知识库问答 >
问题:

两个相同的外键从同一个表到另一个表?

裴钧
2023-03-14

在一个表中有两列可以是来自同一表的外键,这样可以吗?

例如:

我有一个“address”表,表中有列:
id,street,city_id,state,country(或id,street,city_id,state_id,state_id)

我有一个'states'表,保存状态和国家:id、name、level

那么我可以把states_id放在地址表的state和country中吗(如上面的括号中所示)?

共有1个答案

荆乐
2023-03-14

是的,完全可以。

Ed Gibbs的观点是对的,如果国家意味着国家,就不要那么做。

在您的示例中,为了清晰起见,最好将表拆分为两个不同的表,例如statecountry,但从一般的观点来看,这种做法没有问题。

这种情况(一个表中的2个FK都引用了另一个表)经常发生,例如,在消息表中,有一个发送者和一个接收者,这两个都引用了同一个用户表。

 类似资料:
  • 问题内容: 我是SQL的初学者,对Transact-SQL不太了解。 我意识到这是一个新手问题,但是我正在寻找一个简单的解决方案。 我有一个带有一些列()的表。 主表 我想从该表中选择数据并插入到其他两个表中。 第一桌 是来自的前三个字符的组合 第一个表中的数据按的前三个字符和客户代码分组 第二张桌子 那么,如何通过使用SQL选择主表的行来插入第一张表和第二张表呢? 感谢您的所有答复。 问题答案:

  • 问题内容: 所以我有两个包含主键’User’的模型 现在,我想查找也在中的用户的所有评论。例如,假设 用户“ 1”* 为 用户“ 3” 和 用户“ 5” 分别撰写了一条评论 * 现在,我输出的应该是对应于“ LoremIpsum1”的评论对象,即其subject_user也存在于中的评论对象。我尝试了以下 但这给了我所有的评语 编辑: 这是我插入评论的方式: 问题答案: 如果我对您的理解正确,这应

  • 问题内容: 只是为了扩展我以前的问题-我的数据库中有两个表,我想提取某些信息。下表: 您向我提供了以下代码来获取播放器的名称: 效果很好,谢谢-我只想进行两项调整: 我想返回得分手的名字以及球员的名字。由于m.scorer是一个ID,如果p.Name已被映射到m.playerID,我如何将其映射到p.Name属性? 上面的查询返回所有玩家的姓名。我很快就会添加搜索功能,您可以在其中搜索特定玩家的所

  • 我正在用MapReduce框架用Java制作一个Hadoop应用程序。 对于输入和输出,我只使用文本键和值。在减少到最终输出之前,我使用一个合并器来做额外的计算。 但我有一个问题,钥匙不去同一个减速器。我在组合器中创建和添加了这样的键/值对: 基本上,我创建的工作如下: 减速机打印的标准输出如下: 这是没有意义的,因为键是相同的,因此它应该是2个还原器,其中3个值是相同的 希望你能帮我弄清这件事:

  • 批量订单 Purchorder 我已经试了一个星期了。我有这两个表,batchporder和purchord在batchporder表中,我需要插入一行,并获得传递给purchord插入的主id。在purchord中,我需要插入多行,因此我使用了insert\u batch。 控制器 模型 错误1 遇到PHP错误严重性:警告 消息:array_keys()要求参数1为数组,字符串为给定值 文件名:

  • 问题内容: 我正在尝试设计款待应用程序。我有两个表,分别为和。用户可以是或可以互相发送主机请求。但是无需将“用户”定义为访客或主机,这对于系统来说并不重要,因此我没有针对他们的单独表。这种差异在Request表中非常重要,并且需要保留和作为外键(由于Host和visitor也是User,因此与User表的主键列对应)。 我的问题是如何在hibernate状态下定义此关系?我的意思是,请求表中应该有