我们目前正在开发一款带有数据库的游戏,玩家可以在数据库中存储某些项目。我总是在学校和球场上学会使用选项1,但我的同事说的是选项2。我们必须选择一个选项,我们现在要问的问题是:两个选项中哪一个是最好的和最快的?以及哪一个是最好的和最快的与5万用户?
3xiyfsfu1#
方案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
1条答案
按热度按时间3xiyfsfu1#
方案1。你说得对。
如果你使用选项2,你会后悔的。它是非标准化的。更新那些以逗号分隔的itemid值列表非常困难。您必须使用事务来读取、更改和写回值字符串。
另外,选项1可以利用数据库索引进行更有效的搜索。询问您的朋友如何找到itemid=15的所有用户。让他帮你写那个问题。在选项1中,您可以使用
您可以使用查询生成用于显示的选项2。展示才是最好的。