我有一个包含游戏角色列表的数据库。用户需要搜索5个字符并为每个选定的字符分配位置。需要保存5个带位置的列表,以便以后检索。
在VB.NET中,我只创建了一个文件,其中包含所选的5及其指定位置,并从中读取数据。
现在我正在尝试创建一个基于Web的版本,我正在努力如何保存数据。大型数据库位于MySQL表中。我猜测为每个用户创建一个新表并为其所选字符分别设置行是没有意义的吗?我的想法是让一个名为“用户”的表然后将所选字符存储在一个列中,例如它们的位置。 “player1:pos4,player56:pos302,player322:pos392'等等,然后我可以稍后拆分这些值。
有没有人对如何处理此问题有更有效的想法?我很感谢这一切!
答案 0 :(得分:0)
我将创建3个基本表:users, characters, positions
和1个查找表:usercharpos
,其中包含3列:user_id, char_id, pos_id
。每个用户,角色和位置都应具有唯一ID作为主键。然后,在usercharpos
查找表中,我将用户与5个所选字符和每个字符的位置相关联。例如,我们有一个id为5的用户,它选择了一些带有ids = 1,2,3,4,5的字符,并为它们选择了一些位置,其中ids = 2,3,6,7,8。 usercharpos
将成为:
user_id char_id pos_id
5 1 2
5 2 3
5 3 6
5 4 7
5 5 8
这样,您可以保持数据库规范化,并且每个实体都有自己的表,而字段中没有多个值。