it's not me Asked: 2024-09-27 19:38:35 +0800 CST2024-09-27 19:38:35 +0800 CST 2024-09-27 19:38:35 +0800 CST 请帮助我理解有关基数的这个问题 772 我和我的朋友正在为职业足球联赛创建 ER 图,我们对数据库都很陌生,所以我们不确定我们所做的一切是否正确。 在建立教练与俱乐部的关系时,他做出了这样的决定: 我很困惑为什么 managedBy 和 signsWith 这两个关系是多对多。我的朋友说多个经理可以一次一对一地管理多个俱乐部。但那不应该是一对一吗?因为在任何时刻,一个俱乐部只能由一名经理管理,而一名经理只能管理一个俱乐部(在这种情况下我们不关心助理经理);signsWith 关系也是如此。 那么我们当中哪一个人是对的? database-design 1 个回答 Voted Best Answer J.D. 2024-09-27T20:31:37+08:002024-09-27T20:31:37+08:00 我的朋友说,多个经理可以一对一地管理多个俱乐部。但那不应该是一对一吗?因为在任何时候,一个俱乐部只能由一名经理管理,而一名经理只能管理一个俱乐部(在这种情况下,我们不关心助理经理);signsWith 关系也是如此。 这更多的是一个文字问题和概念问题,而不是数据库问题。 你的朋友可能正在考虑是否保留历史记录。例如Club A,创建Manager 1并主动管理它。然后有一天切换到管理。在你朋友的矿井中,即使他不再是他们的主动经理,该表仍将保留用于管理Club B的历史记录。Manager 1Club A 所以这真的取决于你们是否需要这些历史记录。不过我会将类似的东西存储在一个单独的表中(通常像Transactions表这样的内容会跟踪这些东西),或者使用某种形式的更改跟踪来记录历史记录,而不是与活跃经理放在同一个表中。在这种情况下,它将是活跃经理表中的一对一关系。
这更多的是一个文字问题和概念问题,而不是数据库问题。
你的朋友可能正在考虑是否保留历史记录。例如
Club A
,创建Manager 1
并主动管理它。然后有一天切换到管理。在你朋友的矿井中,即使他不再是他们的主动经理,该表仍将保留用于管理Club B
的历史记录。Manager 1
Club A
所以这真的取决于你们是否需要这些历史记录。不过我会将类似的东西存储在一个单独的表中(通常像
Transactions
表这样的内容会跟踪这些东西),或者使用某种形式的更改跟踪来记录历史记录,而不是与活跃经理放在同一个表中。在这种情况下,它将是活跃经理表中的一对一关系。