[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поместить массив в базу данных
goodguy
Всем привет.
Пока еще не особо разобрался с базвами данных и 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 написал(а):
goodguy
отдельную таблицу нужно строить для связей
посмотри этот топик

Спустя 13 минут, 15 секунд (4.01.2011 - 19:02) goodguy написал(а):
Ясно.
А если, например, есть 30 солдат, т.е. 30 айдишников, и в игре убили солдата под номером 15. Значит нужно удалить строку, где ID = 15. Обновятся ли все ID если на колонке с ними стоит AUTO_INCREMENT? Или 15я строка просто выпадет?

В игре нужно, чтобы все солдаты были подряд

Спустя 14 минут, 21 секунда (4.01.2011 - 19:16) Invis1ble написал(а):
goodguy
а зачем тебе там автоинкремент? в таблице связей он не нужен для того поля...
Удаляешь запись, где (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 написал(а):
нет, ничего подобного. Это стратегия о современной войне cool.gif (Уже 7 месяцев на нее убил biggrin.gif )

Малость поэксперементировав, пришел к выводу, что нет смысла заморачиваться с такой конструкцией. Проще, и лучше, в данном случае, будет запись массива в таблицу просто строкой, так как в любом случае, данные пришедшие во флеш из пхп, всегда воспринимаются как строка, и ее все равно нужно будет отдельно парсить. А раз уж массив нельзя просто так записать в БД, буду отправлять его серверу сразу в виде строки

Спустя 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 написал(а):
Давайте не будем обсуждать логику игры? Она у меня ПРАВИЛЬНАЯ, для меня как раз путанициы никакой. Если бы меня интересовало как правильно простроить логику флеш приложения, я бы спрашивал об этом на формумах по флешу wink.gif


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

Флеш - это клиентская технология huh.gif Причем тут сервера?
Или запись одной строки в базу данных создаст больше нагрузки на сервер, чем создание целой таблицы?
Тут, по-моему, даже не будучи экспертом понятно, что как раз второе содаст больше путанницы и нагрузки на сервера

Спустя 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 тоже могут возникнуть проблемы... Вобщем решай сам, тебе уже сказали, что стоит изменить логику в целом при формировании списка айди

Спустя 2 минуты, 45 секунд (10.01.2011 - 16:24) goodguy написал(а):
Цитата
с поиском по id тоже могут возникнуть проблемы...

Например?
У меня с этим опыта вообще мало, поэтому даже не могу представить какие проблемы это может вызвать

Спустя 2 часа, 37 минут, 38 секунд (10.01.2011 - 19:01) hellmin написал(а):
Прочитай про функцию serialize()... а потом засовывай в бд свой массив.
Потом высовывай из бд и применяй функцию unserialize ().
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.