Хранение хэш-карты в базе данных SQL

Как вы храните хэш-карту внутри базы данных SQL? Кроме того, как бы вы загрузили этот HashMap из базы данных SQL обратно в экземпляр HashMap?

ладно, это то, что я делаю. У меня есть база данных для хранения данных игрока для моей игры. Он имеет таблицу, содержащую их имена пользователей и пароли. У каждого игрока есть HashMap, который хранит их свойства. Мне нужно сохранить этот HashMap в базе данных вместе с соответствующим пользователем.

4 ответов


вам нужна таблица 3 столбцов

пользователь


если вы хотите вставить ключ-значение, вы можете, однако, убедиться, что ключи и значения являются строками и могут вписываться в определение столбца. Вот пример:

mysql> create table hashmap (k varchar(200), v varchar(200));
Query OK, 0 rows affected (0.24 sec)

mysql> insert into hashmap values ('key','value');
Query OK, 1 row affected (0.02 sec)

mysql> select * from hashmap;
+------+-------+
| k    | v     |
+------+-------+
| key  | value |
+------+-------+
1 row in set (0.00 sec)

кроме того, вы можете уникальный индекс столбца k который содержит ключи, поэтому ваши поиски постоянны, как и hashmap, и вы можете заменить старое значение с помощью ON DUPLICATE KEY UPDATE v = new_value.. Я предполагаю, что вы используете MySQL для ON DUPLICATE KEY часть.


каждая запись в HashMap похожа на строку в вашей таблице. В конечном итоге у вас будет отдельная таблица для каждого HashMap (возможно).

код K параметр в вашей карте должен быть применен как уникальный ключ в вашей таблице и индексирован.

имейте в виду, что для хранения этих объектов может потребоваться более одного столбца каждый. Например, у вас может быть точечный объект в качестве ключа, поэтому вам понадобится столбец x и столбец y, а также индекс уникальности для пар x и Y.


HashMap структура данных, вы можете хранить данные, находящиеся в нем.

создайте таблицу, эмулирующую пару значений ключа. перебирать ключи карты и хранить ее в БД.