我正在研究开发一款类似《炉石传说》的在线纸牌游戏。玩家将拥有无限的库存来存储他们拥有的所有卡片。
使用这种方法,每个玩家卡组合的 1 行数据量都会非常大,因此呈指数增长。
最初,我想要 3 张桌子:
一个 Player_Table
| Player_ID | Player_Name | Rank | Icon | ect...
A Card_Table
| Card_ID | Card_Name | Attack | Defence | ect...
然后是他们的 Inventory_Table
| Player_ID | Card_ID | Quantity |
然后我可以使用 SELECT Card_ID FROM Inventory_Table WHERE Player_ID=YourID 之类的语句
显然,这里有一个缩放问题,我添加的卡越多,加入的玩家越多,获得卡列表所需的时间就越长。
我正在考虑使用 MongoDB 之类的东西作为 NoSQL 的替代品,以帮助解决这可能导致的潜在性能问题,但后来我发现它不像 mySQL 那样免费用于商业用途,所以我放弃了这个计划。
我想出的第三个也是最后一个想法是动态添加表格。当一个玩家被创建(创建一个帐户)时,我可以添加一个名为“Player_Cards_”+ Player_ID(EG Player_Cards_318)的表格,有些东西告诉我这是一个坏主意,但我不确定。
请有人指出我正确的方向。