Давайте предположим, что у меня есть таблица базы данных координат карты 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 для таблицы с родовыми отношениями, но IMHO родовые отношения не такбыстро.Учитывая, что набор запросов состоит из 49 плиток, как я могу легко определить, какой объект присутствует на плитке?