SQL三元关系设计

SQL三元关系设计,sql,database-design,Sql,Database Design,我已经很长时间没有做任何数据库概念设计了,而且我已经生锈了。我想听听你对我所做的设计的意见,因为我觉得有些地方不对劲,或者可以大大改进 下面是我想要的规则: 用户可以有零个或多个字符 字符属于服务器 一个角色可以在公会中,也可以不是很难对付的角色 公会属于服务器,因此角色和公会必须位于同一服务器中 一个公会有一个公会主席,他是一个角色 这是我想到的第一件事: 这是第二个 我能听听你的意见/建议吗?提前谢谢 在第二种情况下,字符不应该有idServer;角色属于公会,公会属于服务器基本上角色的id

我已经很长时间没有做任何数据库概念设计了,而且我已经生锈了。我想听听你对我所做的设计的意见,因为我觉得有些地方不对劲,或者可以大大改进

下面是我想要的规则:

用户可以有零个或多个字符 字符属于服务器 一个角色可以在公会中,也可以不是很难对付的角色 公会属于服务器,因此角色和公会必须位于同一服务器中 一个公会有一个公会主席,他是一个角色 这是我想到的第一件事:

这是第二个


我能听听你的意见/建议吗?提前谢谢

在第二种情况下,字符不应该有idServer;角色属于公会,公会属于服务器基本上角色的idServer应该通过进入其公会获得。除此之外,这似乎是合理的。问题是角色不一定属于公会,所以如果角色没有公会,他就不属于任何组织;这是有道理的:我没有看到任何错误;什么让你不安?我喜欢第二好的。。。直接在角色上使用可为空的idGuild。既然行会主席一定会存在,我想从你所画的关系中。。。我只是怀疑帮会桌上是否有idServer。在查询中,它肯定比通过GuidMaster关系查找字符表来查找idServer更有效。。。OTOH它是冗余的,并且增加了完整性约束,您必须强制执行它,使其非规范化,不是很多,而是一点。