所以据我所知,mysql 中没有集合、列表、字典或数组。我想构建一个系统,它有两个核心组件,关于比赛的信息,然后是比赛中的角色列表。如果 mysql 中有列表,那么我会做这样的事情:
game_id INT,
characters list<varchar>,
....more data
我希望能够执行的基本查询是这样的:
SELECT * FROM games WHERE characters IN LIST(list);
我可能只选择一个字符,或者我可以指定 10 个字符。问题是如何在 mysql 中有效地做到这一点,而不是WHERE
在OR
. 角色也没有特定的顺序……但我想我可以根据他们的 ID 对它们进行排序。
我想到的唯一方法是创建包含基本信息的第一个表和仅包含角色 id 和 game_id 的第二个表。
有人对如何使用我可能不知道的一些花哨的 mysql 技巧很好地组织这些数据有任何建议吗?查询也需要很快,因为最终可能会有很多。除非我添加查看/下载计数器,否则读取次数将多于写入次数......比我猜它的写入/更新次数要多于读取次数。
谢谢,我很乐意提供更多信息。