适合“公会”系统的数据库结构?

时间:2014-11-13 23:27:11

标签: mysql sql database database-design relational-database

我目前的结构有一个帐户表格,以及与帐户相关的字符" ID"领域。这些角色也有自己唯一的ID,我将在guilds表中使用它;然而,我意识到我无法找到处理它的最佳方法。

我应该创建一个TEXT字段并使用分隔符存储字符ID吗?这看起来很奇怪,因为每个角色都会在公会中拥有自己的等级等等。但是,当玩家加入公会时,似乎使用了你想要存储的逻辑,他的等级是公会,或任何其他信息,每个公会都需要它自己的桌子。

这个的正确结构是什么?我应该有一个" Guilds"桌子,或者"公会"数据库,其中包含每个公会的表格。

你们会推荐什么,我对数据库不是很好,但我想在我的爱好者项目中添加一个公会类型系统。

2 个答案:

答案 0 :(得分:3)

我相信你应该有这些表格:

ranks(id, name, lower_rank_id, higher_rank_id, description)

guilds(id, name, gold_amount)

characters(id, name)

memberships(id, character_id, guild_id, rank_id, description)

您拥有ranks表中的所有排名,guilds表中的所有公会,characters表中的一些字符和memberships表将它们全部链接到外键。

答案 1 :(得分:0)

您所描述的问题非常简单 - 至少如果层次结构只涉及:

一个或多个角色是零或多个公会的成员。

如果公会在某种程度上是大公会的一部分(即木工协会的成员是工匠公会的事实成员),事情会变得稍微复杂一些。

这是一个指向simple hierarchy structure in mySQL的指针(只需用带有公会的角色和部门替换员工,你应该没问题) - 请注意,这也有一些有趣的额外功能,如Guildmasters,属于多个的可能性公会,并随着时间的推移改变公会或头衔/等级 - 如果你不关心那些,你可以安全地放下一些额外的桌子......