首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在关系数据库中对此进行建模?

如何在关系数据库中对此进行建模?
EN

Stack Overflow用户
提问于 2021-12-06 03:52:16
回答 1查看 48关注 0票数 -1

我有三张桌子:书,萨格斯和宇宙。书籍使用idSaga作为外键。Sagas使用idUniverse作为外键。

它们都是一对多的关系。

一本书可以是一个传奇故事的一部分,也可以是一个更大宇宙的一部分;例如:戒指的领主和戒指的联姻是LOTR传奇的第一部,而LOTR是在传奇的宇宙中。

我该怎么称呼一本像霍比特人这样的书呢?它不是任何传奇的一部分,而是传奇宇宙的一部分。

我不想在表簿中添加一个新字段(对于外键),它看起来像是破坏了规范化。增加一个新的表格,书籍和宇宙之间的关系看起来有点过分。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-06 04:16:27

我不想在表簿中添加一个新字段(对于外键),它看起来像是破坏了规范化。

这正是我会做的。我不知道你所说的“看起来像是打破正常化”是什么意思,但对我来说,这似乎很理想,因为书中的->宇宙关系可能是有用的。

例如,假设您有一个新特性,您希望计算给定宇宙中的所有书籍。如果books表中没有外键,则必须查询sagas表以获取与sagas无关的信息。

通过排除此外键,您将限制今后使用此关系的选项。

总之,我想说:

代码语言:javascript
运行
复制
Books M:1 Saga
Books M:1 Universe
Saga M:1 Universe

我也同意另一个答案,那就是,在某些情况下,一本书可能存在于多个宇宙,但这取决于你是否允许这样做:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70240680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档