我目前正在创建一个应用程序,用户可以在其中从网站控制我的世界服务器(这将与他们安装在服务器上的插件进行交互)。我试图想出一个合适的设计来允许每个服务器定义自己的用户权限组。最后,将有一个预定义的选项列表(我的插件将知道如何处理的东西)供每个服务器从中挑选并分配给他们创建的组。我的目标是拥有它,因此该网站上的 1 个单个用户可能能够在一个服务器面板中拥有多个组,并且该用户能够被分配到多个服务器面板。
这是我目前想出的数据库布局:
Table: Roles (will hold the predefined roles)
Columns:
serverTypeId (to distinguish between roles allowed for the 2 versions of minecraft)
roleId (the role's unique id, primary key)
roleName (some name to distinguish the role's purpose)
Table: ServerGroup (will hold the custom per server groups)
Columns:
serverId (the server's unique id)
groupId (the server role's unique id, primary key)
groupName (name given to group, like Staff, Admin, etc)
roleList (a csv list of roleId's from the Roles table)
Table: ServerPermissions
Columns:
serverId (the server's unique id)
serverGroupId (the server's groupId that this user belongs to)
userId (the user's id that is unique to the whole website)
有一个更好的方法吗?这是我能想到的最好的方法。我不是最精通 SQL 并且正在寻找改进的方法。