скажите а если я сохраню в мускуле строку где посередине встречается символ \0 ну символ конца строки или как его то у меня будет считываться только половина сообщения? у меня вообще такая строка в мускуль запишется хоть? хДДД
iDenChig а ты разве говорил? хДДД сори не заметил либо проигнорировал случайно хДДД пох всеравно и тебе спасиба и св_алексу и эрапис... ээ тоесть едапскову хДДД
Поверь, это не так смешно, как кажется. Причин на это несколько:
1.) Таблица вида:
id | id_user | id_object
гораздо оптимальнее, чем таблица вида:
id | id_user | name_object
просто потому, что в 99% случаев число id_object будет гораздо короче, чем строка name_object
2.) Список всех уникальных предметов можно вытащить элементарнейшим селектом. И это очень даже полезно. Например, если предполагается реализовать магазин инвентаря или что-то подобное.
3.) Гораздо удобнее менять названия предметов (например, надо исправить грамматическую ошибку или просто его изменить). При этом в программе никаких изменений делать не придётся.
хмм а зачем мине список уникальных предметов? хД мне просто надо инвентарь и конечно же таблица юзеров хД наверное сделаю как sw_alex сказал сделаю 1 таблицу под все предметы хД
Одна таблица - список юзеров. Одна таблица - список уникальных предметов. И ещё одна таблица - список вида id_юзера - id_предмета. Немного сложнее, но и возможностей больше.
В мускуле тип BLOB может хранить двоичные данные, если так уж надо. А для инвентаря сделай просто одну таблицу на всех, типа: ID предмета, ID игрока-владельца, Тип предмета, позиция в инвентаре. И выбирай для конкретного игрока его инвентарь из базы простым селектом по ID игрока.
Genius да и цикл из 5000 элементов который считывает массив и запихивает его в строку, это вообще мелочи, если конешь не делать каждый фрейм эту операцию
Genius ну да Maldan прав ты что то с силы свои переоцениваеш :) в диабло их не больше 200, а инвентарь предметов на 10. Но даж если 5000 в начале указывай ID допустим что надето 4|3|1|4#Меч,33,23|Череп птички миниетчицы,3,3 ячейка которая пустая пропуска || что-бы ID не сбить, хотя при сохранении можно пересчет делать. Ты ж не каждую секунду буишь сохранять :) Вот те хоть 100500 храни у себя на серваке и 1 челу 1 запись в таблице. Если элементы которые должны быстро расчитываться типа там построка здания и т.п. то можно еще использовать несколько записей в таблице для игрока.
но ведь чтобы просто добавить или поменять местами предмет придется весь инвентарь грузить и заново записывать после изменения а если в инвентаре 4000 предметов? хДДД ну... ладно я подумаю над этим хДД
Таблицу для каждого игрока? Ты бл9ть е6ануося совсм? Хд может еще и бд каждую на отдельного игрока хД создай одну таблицу с полями и запиивай в строковую ячейку строку ну вот как денчиг предолжил, через спецсимволы, а потом сплитуй ее в массив хД
Genius ты жеский тип :) можешь свой массив сохранить байтами перевести в бейс 64 и сохранить в бд :) Так же можешь сохранить по ID свой шмот типа: 83|43|55|32|86 и разбивать на массив типа сплита, ну можешь сделать шлем|32|43|...#меч|33|34|...#хрен|44|23|... И сплит сначало а потом еще раз сплит типа арр[i] - арр.split("текст");for(i=0;i<арр.length;i++)арр.split(арр[i]);
корочее я хотел записать массив в ячейку хД мне надо как то хранить инвентарь игрока в бд но для каждого игрока создавать таблицу неохота но с другой стороны постоянно весь полностью инвентарь считывать а потом перезаписывать из за изменения нескольких байт тоже не канает хДДД
Мускул хранит битами, а видит строку через указанную кодировку, так что ему абсолютно побабую какие у тебя там спец символы используются, для него это обычный символ.