【问题标题】:Get info about an expansion pack for the character who belongs to an unknown team获取有关属于未知团队的角色的扩展包的信息
【发布时间】:2020-03-04 16:33:20
【问题描述】:

我正在创建新数据库 - 例如,假设我想创建一个包含游戏角色的表,下一个包含团队的表,其中该表的主键是包含字符的表中的外键,最后一个表包含为该游戏发布的扩展包,其中该表的主键是团队表中的外键(因为一些团队通过扩展包添加到游戏中)。不幸的是,有些角色属于未知团队,因此可能应该显示为 NULL,但同时我们知道将这些角色添加到游戏中的扩展包。请看下图以使我的描述更清楚:

我想获取有关属于未知团队的角色(图片中的角色 3)的扩展包的信息。通过将带有expandpack_id 的第二个外键添加到字符表来做到这一点的唯一方法是什么?这是一个正确的解决方案吗?

【问题讨论】:

  • use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。无法搜索或剪切和粘贴图像。在图片中包含图例/键和说明。
  • 是时候关注已出版的关于信息建模、关系模型和数据库设计与查询的学术教科书了。 (记录和使用设计的语言和工具手册不是这样的教科书。)(维基文章或网络帖子也不是。)数十种已出版的学术信息建模和数据库设计教科书以 pdf 格式在线免费提供。 stanford.edu 有免费的在线课程。 (但在 SO 之外寻求资源是题外话。)
  • 可能重复。看到这个答案:stackoverflow.com/a/11824531/3854195
  • 请展示您所指的确切新设计并尝试查询您想要的内容并在遇到困难时提出问题。请不要只是想知道并要求我们为您完成它。 minimal reproducible example

标签: sql join database-design null primary-key


【解决方案1】:

CharacterExpansion Pack 通过Team 表关联。表Team 在多对多关系中用作映射表。

因此图像中的character3Team 表没有关系,因此您无法将其与Expansion Pack 相关联。

建议:将expansionpack_id 列从Team 移到Character 表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2019-06-24
    • 2017-05-30
    • 1970-01-01
    • 2017-02-13
    • 2018-11-01
    相关资源
    最近更新 更多