我打算将查询范围限制为仅基础数据和由特定玩家的游戏过程生成的数据。我想这是一个常见的情况,已经存在标准范例,这些范例更高效,需要更少的存储空间,等等,这正是我自己的数据库新手可以想到的。有吗?
我的第一个解决方案是向数据库中的每个表添加一个游戏实例标识列。我的大多数Select语句都包含许多表联接,并且我将进行多条件ON来实现此范围限制。即
JOIN Table_B
ON Table_B.field1 = TableA.field2 AND Table_B.gameID IN (xxx ,root_x)
作为替代方案,我可以利用一个现有表,该表可以将每个数据对象链接到其他数据对象或属性。我可以为每个对象创建一个“游戏实例”链接,以返回到贯穿过程的单个条目,但是当某些查询与十几个或更多对象交互时,我担心这样做对处理时间的危害大于好处。
深入思考这个问题后,我想知道为游戏的每个实例创建一个数据库是否有意义。将针对根数据库中找到的基本数据集以及针对实例创建的数据库生成的数据重复查询。
我正在使用Java和MySQL。