我正在尝试将有关游戏地图的信息存储在 MySQL 数据库中。为此,我将为每个包含整数数组的地图创建一个 VARCHAR 字段。这个整数数组可能包含 1000 个数字,对应于存储在数据库中的不同图形元素的 id。
例如,它可能包含一个像这样的二维数组(一个 3x3 单元格图)
1,1,4
2,5,6
1,1,1
然后在我的数据库中会有一个像这样的表
tiles
id | file | desc | other data //...
1 grass.png a grass tile
2 water.png a water tile
当用户在数据库中查询地图时,我需要发送二维数组以及有关元素的信息。例如,如果数组包含数字 2,我需要返回信息,说明任何 id 为 2 的单元格都应绘制为水砖、文件名 water.png 等。
如何最好地有效地实施这一点?我真的不想在 php 中遍历整个数组,获取唯一的 id 值并在之后再次查询数据库以获取信息(对我来说似乎效率低下)。
我正在考虑拥有另一个包含唯一 id 的字段,其格式4,1,2,5,6
会在 2d 数组更改时更新。如果这是一个好主意,我该如何使用它进行查询?下面这样的东西似乎对我不起作用
SELECT * FROM tiles WHERE id IN ( SELECT unique_ids FROM mapInfo WHERE id = ..)