Пока еще не особо разобрался с базвами данных и php, поэтому нужен совет более опытных в этом деле.
Ситуация такая: написал флеш игру, в ней есть возможность нанимать рекрутов, и, в зависимости от задания управлять отрядом от 2 до 5 солдат. Изначально выделяется 50 солдат.
У солдат есть звания, которые обновляются в зависимости от боевых заслуг.
Так вот, нужно как-то записывать в базу ассоциативный массив, типа: солдат=>звание
Как это можно осуществить?
Спустя 9 минут, 10 секунд (4.01.2011 - 18:47) sergeiss написал(а):
Цитата (goodguy @ 4.01.2011 - 19:37) |
Так вот, нужно как-то записывать в базу ассоциативный массив, типа: солдат=>звание Как это можно осуществить? |
Нужна отдельная таблица. Там должны быть айдишники солдат, их звания и какой-то айдишник для привязки к тому, кто нанял этих рекрутов.
Спустя 1 минута, 46 секунд (4.01.2011 - 18:48) Invis1ble написал(а):
Спустя 13 минут, 15 секунд (4.01.2011 - 19:02) goodguy написал(а):
Ясно.
А если, например, есть 30 солдат, т.е. 30 айдишников, и в игре убили солдата под номером 15. Значит нужно удалить строку, где ID = 15. Обновятся ли все ID если на колонке с ними стоит AUTO_INCREMENT? Или 15я строка просто выпадет?
В игре нужно, чтобы все солдаты были подряд
А если, например, есть 30 солдат, т.е. 30 айдишников, и в игре убили солдата под номером 15. Значит нужно удалить строку, где ID = 15. Обновятся ли все ID если на колонке с ними стоит AUTO_INCREMENT? Или 15я строка просто выпадет?
В игре нужно, чтобы все солдаты были подряд
Спустя 14 минут, 21 секунда (4.01.2011 - 19:16) Invis1ble написал(а):
goodguy
а зачем тебе там автоинкремент? в таблице связей он не нужен для того поля...
Удаляешь запись, где (id солдата = id убитого солдата) и (id игрока = id текущего игрока)
Примерно так...
а зачем тебе там автоинкремент? в таблице связей он не нужен для того поля...
Удаляешь запись, где (id солдата = id убитого солдата) и (id игрока = id текущего игрока)
Примерно так...
Спустя 4 минуты, 4 секунды (4.01.2011 - 19:20) goodguy написал(а):
ну, допустим, я удалю строку с солдатом 15, потом создам еще одну с тем же id, но 30 солдат станет 29м, 29й -> 28м, и т.д. (это логика в игре). Было бы удобнее, если это все обновлялось автоматом
Спустя 7 минут, 19 секунд (4.01.2011 - 19:27) Invis1ble написал(а):
goodguy
Цитата |
это логика в игре |
имхо, плохая логика )
Спустя 3 минуты, 34 секунды (4.01.2011 - 19:31) goodguy написал(а):
Хорошая логика. Вопрос то не в том, как мне логику простраивать. Там просто солдаты циклом выстраиваются, и сопоставляются с оружием, которое им доступно и т.д. Цикл так же помещает их в массив, а при убийстве, солдат вырезается с соответствующей позиции в массиве, после чего массив, естественно, смещается. По окончании задания, данный массив должен преобразоваться из индексированного в ассоциативный и отправиться в базу данных.
В общем, не буду вдавать в подробности
В общем, не буду вдавать в подробности
Спустя 1 час, 15 минут, 44 секунды (4.01.2011 - 20:47) Gigabit написал(а):
Походу Казаки игру пишешь ?)
Спустя 2 минуты, 14 секунд (4.01.2011 - 20:49) goodguy написал(а):
нет, ничего подобного. Это стратегия о современной войне
(Уже 7 месяцев на нее убил
)
Малость поэксперементировав, пришел к выводу, что нет смысла заморачиваться с такой конструкцией. Проще, и лучше, в данном случае, будет запись массива в таблицу просто строкой, так как в любом случае, данные пришедшие во флеш из пхп, всегда воспринимаются как строка, и ее все равно нужно будет отдельно парсить. А раз уж массив нельзя просто так записать в БД, буду отправлять его серверу сразу в виде строки


Малость поэксперементировав, пришел к выводу, что нет смысла заморачиваться с такой конструкцией. Проще, и лучше, в данном случае, будет запись массива в таблицу просто строкой, так как в любом случае, данные пришедшие во флеш из пхп, всегда воспринимаются как строка, и ее все равно нужно будет отдельно парсить. А раз уж массив нельзя просто так записать в БД, буду отправлять его серверу сразу в виде строки
Спустя 4 дня, 2 часа, 1 минута, 7 секунд (8.01.2011 - 22:50) sergeiss написал(а):
Цитата (goodguy @ 4.01.2011 - 20:31) |
Хорошая логика. Вопрос то не в том, как мне логику простраивать. Там просто солдаты циклом выстраиваются, и сопоставляются с оружием, которое им доступно и т.д. Цикл так же помещает их в массив, а при убийстве, солдат вырезается с соответствующей позиции в массиве, после чего массив, естественно, смещается. По окончании задания, данный массив должен преобразоваться из индексированного в ассоциативный и отправиться в базу данных. В общем, не буду вдавать в подробности |
Тебе уже сказали - логика неправильная ЗАВЕДОМО. Много путаницы и лишней нагрузки для сервера.
Спустя 1 день, 15 часов, 24 минуты, 13 секунд (10.01.2011 - 14:14) goodguy написал(а):
Давайте не будем обсуждать логику игры? Она у меня ПРАВИЛЬНАЯ, для меня как раз путанициы никакой. Если бы меня интересовало как правильно простроить логику флеш приложения, я бы спрашивал об этом на формумах по флешу

Цитата |
Много путаницы и лишней нагрузки для сервера. |
Флеш - это клиентская технология

Или запись одной строки в базу данных создаст больше нагрузки на сервер, чем создание целой таблицы?
Тут, по-моему, даже не будучи экспертом понятно, что как раз второе содаст больше путанницы и нагрузки на сервера
Спустя 1 час, 46 минут, 1 секунда (10.01.2011 - 16:00) Invis1ble написал(а):
goodguy
Цитата |
Или запись одной строки в базу данных создаст больше нагрузки на сервер, чем создание целой таблицы? Тут, по-моему, даже не будучи экспертом понятно, что как раз второе содаст больше путанницы и нагрузки на сервера |
знаешь, я тоже так думал когда-то... на самом деле отдельная таблица рулит, т.к. есть много подводных камней (например, поиск по нужным значениям)
Спустя 5 минут, 34 секунды (10.01.2011 - 16:06) goodguy написал(а):
да мне по сути нужен только поиск по id пользователя. База в целом довольно простая. + этот запрос проводится всего 2 раза, при запуске приложения и при завершении игры
Спустя 15 минут, 6 секунд (10.01.2011 - 16:21) Invis1ble написал(а):
goodguy
с поиском по id тоже могут возникнуть проблемы... Вобщем решай сам, тебе уже сказали, что стоит изменить логику в целом при формировании списка айди
с поиском по id тоже могут возникнуть проблемы... Вобщем решай сам, тебе уже сказали, что стоит изменить логику в целом при формировании списка айди
Спустя 2 минуты, 45 секунд (10.01.2011 - 16:24) goodguy написал(а):
Цитата |
с поиском по id тоже могут возникнуть проблемы... |
Например?
У меня с этим опыта вообще мало, поэтому даже не могу представить какие проблемы это может вызвать
Спустя 2 часа, 37 минут, 38 секунд (10.01.2011 - 19:01) hellmin написал(а):
Прочитай про функцию serialize()... а потом засовывай в бд свой массив.
Потом высовывай из бд и применяй функцию unserialize ().
Потом высовывай из бд и применяй функцию unserialize ().