当前位置: 首页 > 面试题库 >

SQL:一个外键引用多个表之一中的主键

楚知
2023-03-14
问题内容

我正在开发一个将用作其他应用程序的可扩展框架的应用程序。

基本类之一称为节点,节点具有内容。SQL表如下所示:

TABLE节点(NodeId int,....等)

表格NodeContentRelationship(NodeId int,ContentType字符串,ContentId int)

开发人员可以扩展应用程序以创建自己的内容类型。

显然,从关系数据库的角度来看,这很不好,因为即使它 外键列,也无法向NodeContentRelationship.ContentId添加外键关系。

但是,该解决方案非常简单且功能强大,因此我不愿意对其进行更改。

您如何看待-我在这个痛苦的世界中生活吗?


问题答案:

为什么不可能将其设置NoteContentRelationship.ContentId为外键?可以方便地用一个关系继承模型用表Content表示一个抽象基类,和各种表AnimalContentCarContent等等代表的派生类。



 类似资料:
  • 我正在拉维尔创建一个项目。我有两个数据库表,它们是通过迁移创建的:我想在数据库模式中设置多个外键。 表用户 我想知道的是如何描述模型中的关系? 编辑: 我计划使用此关系,每个用户都属于部门,任何部门都有多个用户,每个用户只有一个部门

  • 我想将一个表中外键的确切数目引用到另一个表中的一个主键。例如,如果我们得到的确切数目为3,则一个主键应该只连接另一个表中的三个外键。我使用用户表存储用户详细信息,使用产品表存储用户购买产品的详细信息。如果用户表的主键是ID,而产品表的外键是通过用户ID列引用用户表的。一个用户id(用户表中的id列)应限制为产品表中三条记录的确切数量。简单地说,用户最多可以购买三个产品,不能超过三个。我可以在MyS

  • 问题内容: 设置外键约束的通常方法是选择外键将指向哪个表。 我在1个表和一组表之间有一个多态关系。 这意味着该表将与集合中的那些表之一相关。 例如。 在上面的示例中,如果person_type为“ subordinates”,则person_id应该是subordinates.id的外键,产品也应如此。 因此,我想知道,是否可以对多个表之一使用外键,或者在分配一个表时必须专门设置它指向的表? 这个

  • 我有两个表两个表名

  • 问题内容: 为简化起见,我有两个使用外键一对一关联的表,例如: 一个用户可能有很多动作,也可能没有。我需要一个sql select来返回在actions表中没有user_id值的用户id。 所以我需要一个返回用户ID 2(Smith)的SQL查询,因为外键值不包含ID 2 我尝试了以下SQL,但它返回了所有用户ID: 问题答案:

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