【发布时间】:2012-02-03 06:52:17
【问题描述】:
假设我有一个地图坐标 x 和 y 的数据库表。我使用 PIL 获取我想要显示和创建的地图图像。
我创建了一个图像,循环遍历每个地图图块以在其上粘贴背景图像,一切都很好。
现在,图块上可以有 n 个玩家,一个怪物,一个 npc,一个传送门或其他任何东西。 如果图块上有任何对象,我需要粘贴特定图像。
问题:如何检查瓷砖上是否有东西?应该是什么数据库结构?
每个玩家都有位置(FK 到其位置的 MapTile)。如果我查询数据库以找出瓷砖上的任何玩家/怪物/npc 的位置会很痛苦,所以我在每个坐标中添加一个列 objects_count。如果它 > 0,那么我会寻找出现的情况。
然后它看起来像:
if objects_count:
if query_for_players_exists:
show player
elif query_for_monster_exists:
show monster
elif query_for_npc...
show npc
and so on.
我可以将 M2M 用于具有通用关系的表,但恕我直言,通用关系并没有那么快。 请记住,查询集由 49 个图块组成,我怎样才能轻松找出图块上存在的对象?
【问题讨论】:
标签: python sql django optimization