|
1 / 1 / 0
Регистрация: 09.07.2009
Сообщений: 93
|
||
Хранение в БД.28.10.2009, 13:27. Показов 2358. Ответов 15
Метки нет (Все метки)
Пишу бой для онлайн игры (своей для развлечения) на PHP. Естественно у боя бывает Лог. Так вот не могу никак врубиться в его хранение в БД. допустим:
Помогите набросать структуру таблицы, где храняться эти записи.
0
|
||
| 28.10.2009, 13:27 | |
|
Ответы с готовыми решениями:
15
Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа Excel Хранение ID Хранение БД |
|
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
|
|
| 28.10.2009, 13:29 | |
|
может стоить хранить не эти записи а то на что они влияют например жизнь
0
|
|
|
1 / 1 / 0
Регистрация: 09.07.2009
Сообщений: 93
|
||
| 28.10.2009, 13:47 [ТС] | ||
0
|
||
|
98 / 54 / 3
Регистрация: 18.03.2009
Сообщений: 273
|
|
| 28.10.2009, 16:28 | |
|
Предлагаю следующую структуру:
id | who | what | response id – номер действия, он же будет ключом таблицы who – кто сделал действие (писать сюда игрок А или Б) what – что именно сделал (ударил, порезал, выстрелил и пр.) response – противодействие (то есть, как у тебя в примере, если игрок заблокировал, то вносить это в эту колонку)
1
|
|
|
1 / 1 / 0
Регистрация: 09.07.2009
Сообщений: 93
|
||
| 28.10.2009, 19:39 [ТС] | ||
0
|
||
|
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
|
||
| 29.10.2009, 10:33 | ||
|
id | who | whom | action | log_id Потом с этой таблицей легко работать...В id прописывается ключ со значение auto_incriment дальше я думаю,что всё понятно...Что нам это даст...В поле логе просто вставляем все элементы таблицы,где log_id= идентификатору нашего боя...После окончания боя,если хочешь удалить все записи этого боя,просто сделай удаление всех записей в таблице,где log_id=идентификатору этого боя...Хотя во многих он-лайн играх все логи сохраняются...Предлагаю сделать следующее: создать ещё 1 поле с датой,когда был начат этот бой...И через определённое время,например неделю,или месяц,удалять все записи,в которых в этом поле значение меньше нынешней даты на определённое кол-во дней...уникальный идентификатор для боя можно создать с помощью функции uniqid(),кот создаёт его на основе текущего времени... Я никогда этим не занимался...Просто это то,что мне первое в голову пришло. Всё конечно можно улучшить,создав несколько таблиц...Если захочешь,могу поделиться своими мыслями далее...
1
|
||
|
98 / 54 / 3
Регистрация: 18.03.2009
Сообщений: 273
|
||
| 29.10.2009, 15:12 | ||
|
1
|
||
|
1 / 1 / 0
Регистрация: 09.07.2009
Сообщений: 93
|
|
| 29.10.2009, 15:25 [ТС] | |
|
Ну это мне ясно..меня другое волнует !
Например ! Записал в БД id 3 who игрокА whom игрокБ action ударил -150, заблокировал в нос. log_id 3 Таких записей будет допустим 100 и каждая со своим идентификатором, как их потом соединить...если id у всех разные ????? В этом моя проблема, а не в том как вставить и что извлечь. К тому же одновременно может быть допустим 20 боев, 100 боев на сервере...запись на запись будет лезть...их ведь потом не найдешь...чтоб извлечь. Насчет хранения...так мне оно и нужно !! чтоб лог боя был доступен и после боя, еще дней 10 например. Просто выводить записи я и без БД могу..аяксом например.
0
|
|
|
98 / 54 / 3
Регистрация: 18.03.2009
Сообщений: 273
|
|
| 29.10.2009, 15:26 | |
|
Соединить элементарно!
SQL-запрос: SELECT * FROM table WHERE log_id=... получаешь таким образом выборку всех строк, относящихся к конкретному бою. Тут уже не важно, что параллельно в таблицу писалось хоть 1000 боев
1
|
|
|
Программист
107 / 111 / 9
Регистрация: 27.09.2009
Сообщений: 331
|
||||||
| 29.10.2009, 15:29 | ||||||
|
зачем разный? разный будет только id-это уникальный идентификатор записи в таблице..Вот к примеру
id | who | whom | action | log_id 1 |Игр1 |Игр2 |Ударил150| 1 2 |Игр2 |Игр1 |Удар -200|1 3 |Игр1 |Игр2 |Удар -100|1 и т.д. log_id ты сам вписываешь,а не автоматом... Вот и всё)) вотом делаешь выборку типа
У следующего боя пропишешь в log_id 2 и т.д.
1
|
||||||
|
1 / 1 / 0
Регистрация: 09.07.2009
Сообщений: 93
|
||
| 29.10.2009, 15:32 [ТС] | ||
Просто я присваиваю какое-то значение log_id, а потом по ниму ищу ???Спасибо, самое главное вы дали нужное направление !!!
0
|
||
|
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 3
|
||
| 24.03.2010, 13:59 | ||
text - сюда HTML код, только со слешами \" все гениально и просто, лично я так делал аналог лога боя игры Carnage
0
|
||
|
5 / 5 / 1
Регистрация: 23.08.2009
Сообщений: 33
|
|
| 24.03.2010, 14:23 | |
|
Занимался подобными системами (играми), вот что могу сказать. Если подразумевается лог боя аля:
Боец 1 ударил по колленной чашечке Бойца 2, переломив ему межреберную кость -25 ХП. то лучше хранить этот лог ввиде HTML кода. Тоесть в конце каждого хода (когда прошел размен) в файл дописывать строчку. Здесь есть огромное приимущества в том, что когда ты из БД будеш выдергивать по ИД боя данные, через какое то время это превратится в мучительную операцию для БД. Поэтому проще когда человек открывает лог боя инклудить ему файл (название которого является номер лога) хтмл. При этом сценариев в файле нет и по сути это вывод хтмл страницы. При этом так же не сложно сделать и пролистование страниц, работая напрямую со строками или обозначая размен спец тегом. а если ты просто имееш ввиду лог кто, куда ударил, то лучше хранить его в БД до окончания боя, а после окончания боя выгружать эти данные опять же в ХТМЛ файл.
0
|
|
|
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 3
|
|
| 24.03.2010, 20:45 | |
|
ты хоть в курсе сколько таких файлов накопиться за 1 год в твоей папке? у меня логи записывались в файлы но сервак тупил. Для нормальных логов без MySql не обойтись!!!!! Чел же помощи просил не зря, вот я ему и дал совет как записывать не в файл а в базу не меняя кода.
0
|
|
|
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
|
||
| 24.03.2010, 23:54 | ||
|
У меня база статистики на 3,5 млн. записей - реальная статистика за год сайта с посещаемостью около 10 тыс человек в сутки... И оптимизированные выборки нормально обрабатывались. И на тот момент это был MyISAM, а не INNODB! Так что, не верю я что при наличии индекса по полю log_id будут какие-то проблемы.
0
|
||
|
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 3
|
|
| 25.03.2010, 11:51 | |
|
он просто написал того чего сам не знает.
Archusha иди изучи работу MySQL, с воздуха ненужно брать типа если база большая то она обязательно должна тупить. ИНДЕКСАЦИЯ и еще раз ИНДЕКСАЦИЯ!!! Вот сейчас я пишу в форум и мое сообщение записывается в базу но сервер же не тупит из-за того что тут миллионы людей отписываются.
0
|
|
| 25.03.2010, 11:51 | |
|
Помогаю со студенческими работами здесь
16
хранение переменных Хранение изображений
Хранение классов хранение куки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|