Mysql 多对多关系数据库,可供许多用户选择
我们目前正在开发一款带有数据库的游戏,玩家可以在数据库中存储某些物品。我总是在学校和球场上学习使用选项1,但我的同事说是选项2 我们必须选择一个选项,我们现在要问的问题是:这两个选项中哪一个是最好和最快的 还有,对于5万用户,哪一个是最好和最快的Mysql 多对多关系数据库,可供许多用户选择,mysql,database,many-to-many,Mysql,Database,Many To Many,我们目前正在开发一款带有数据库的游戏,玩家可以在数据库中存储某些物品。我总是在学校和球场上学习使用选项1,但我的同事说是选项2 我们必须选择一个选项,我们现在要问的问题是:这两个选项中哪一个是最好和最快的 还有,对于5万用户,哪一个是最好和最快的 选项1。你说得对 如果你使用选项2,你会后悔的。它是非规范化的。更新那些以逗号分隔的itemID值列表非常困难。您必须使用事务来读取、更改和写回值字符串 此外,选项1可以利用数据库索引进行更高效的搜索。询问您的朋友如何找到itemId=15的所有用户。
选项1。你说得对 如果你使用选项2,你会后悔的。它是非规范化的。更新那些以逗号分隔的itemID值列表非常困难。您必须使用事务来读取、更改和写回值字符串 此外,选项1可以利用数据库索引进行更高效的搜索。询问您的朋友如何找到itemId=15的所有用户。让他帮你写下那个问题。使用选项1,您可以使用
SELECT UserId
FROM tbl
WHERE ItemId = 15
您可以使用查询生成用于显示的选项2。展示是它的全部好处
SELECT UserId, GROUP_CONCAT(DISTINCT ItemId ORDER BY ItemID) ItemId
FROM linktable
GROUP BY UserId
可能重复的