【发布时间】:2013-11-28 03:29:59
【问题描述】:
嗯,我正在从事一个可能涉及数千名用户的项目,我在数据库方面没有太多经验,尤其是在涉及实体之间的关系时。
让我解释一下我的情况。首先有一个用户可以使用他的凭据登录我们的系统。我们的系统中有一个模块,这将使他能够创建项目。这样就带来了 User 表和 Projects 表之间的关系。
现在还有另一个模块,即团队创建模块,它按照它所说的去做。从可用成员列表中,他可以选择他喜欢的人并将他们添加到团队中。所以有该成员和团队的表格。此外,一个成员可以是多个团队的一部分,一个团队可以有多个成员,“用户”也可以是成员。
我自己设计了一个数据库,但我不确定它是好是坏。此外,如果有人能向我指出如何在涉及关系的表中插入或更新的优秀教程,我将不胜感激。
这是我到目前为止的设计:
更新
在与 IRC 上的某个人讨论后,我想出了一个修改后的设计。我合并了“用户”和“成员”表,因为用户也是成员。
我的问题还是一样,我在正确的轨道上吗?
【问题讨论】:
-
是的,你基本上走上了正轨。然而,一个成员真的只能是一个且只有一个项目的一部分吗?那里不应该是多对多的关系吗?您还应该定义自然键。 en.wikipedia.org/wiki/Natural_key
-
@JonBoulineau 这是一个有趣的问题(我以前没想过;关于成员和项目之间是否也应该存在多对多关系,这有点发人深省)。一个会员可以创建许多项目,也可以成为其他许多项目的一部分(我想也包括他的项目)。
标签: mysql database-design mysql-workbench