Проблема со структурой базы данных (mysql)

Версия Minecraft
1.7.10
Пишу торговый мод. В общих словах задумка такая: игроки получают монеты через продажу ресурсов в спец окне. Цена балансируется по определенной формуле и обновляется раз в день. Игроки так же могут выкупить лично проданные ресурсы.

Возникла необходимость всю эту инфу куда-то записывать, я выбрал базу данных mysql (sqlite если быть точным). Работаю с базами данных впервые. На черновике накидал список таблиц и их структуру. Проблема возникла с последней, никак не додумаюсь как же все организовать таким образом, чтобы не создавать кучу таблиц и иметь возможность расширения (добавление новых ресурсов в продажу и т.п.)

В колонках (column) хранятся вкладки: металлы, кристаллы, пыль и т.п. Нужно для того, чтобы добавлять в них какие-то ресурсы (например на других модах). Так же можно будет добавлять новые колонки (вкладки) для типов ресурсов.

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

==Хранение ресурсов==
[resDB] <-- Название базы данных

column1 column2 column3
------- ------- --------
Железо Алмаз Уголь
Медь Изумруд Красная пыль
Олово Аметист Лазурит
... ... ...


==Хранение цены==
[prDB]

column1 column2 column3
------- ------- --------
32 200 4
12 100 3
8 50 6



=Хранение кол-ва проданных серверу ресурсов за все время=
[amDB]

column1 column2 column3
------- ------- -------
12121 675 4543345
343425 56 432432
232312 45 87654


=Хранение игроков?= <--- а надо ли?
[plDB]

vasya336
ololosh228
petya98


=Хранение ресурсов у игроков=
[plresDB]

???

Собственно вопрос: как хранить данные проданных ресурсов игроком?
Проблема в том, что список ресурсов должен быть расширяемым. Помимо расширяемых ресурсов имеются так же разные вкладки с другими ресурсами. Их все нужно как-то организовать в таком виде, чтобы база могла расширяться при необходимости. Мне кажется я что-то упускаю.

Сам код еще не писал, предпочитаю сперва в черновом варианте накидать план, а потом по нему уже работать. Застопорился в этом месте плана.






 
929
30
66
как хранить данные проданных ресурсов игроком?
Я бы на твоём месте со стороны сервера где-то создавал txt файлы с ником игрока и при покупке просто записывать туда(что он купил, когда, в общем как хочешь) или 1 файл сделать и туда записывать ник игрока и что купил..
 
7,099
324
1,510
Вообще не понимаю твою логику.
Почему нельзя в одной таблице создать поля: предмет, цена, категория. И все.

Потому что
Работаю с базами данных впервые.
Про категорию даже не подумал.

А вообще не хочу, чтобы в таблице был бардак и записи вперемешку. Как я уже писал, могут добавляться новые предметы и новые категории. Хотелось бы, чтобы предметы одной категории находились рядом, сгруппировано.

Игрок, Ресурс, Цена, Количество, м?
Вот так что ли?

ololosh228 iron 2305
ololosh228 copper 32
.. И так еще для 20-30 ресурсов.

Выглядит неплохо, упустил из вида такую простую запись.

Проблема в том, что когда список будет расширен (будут добавлены новые ресурсы), то записываться они будут отдельно от основного списка, а хотелось бы сгруппировано.
 
7,099
324
1,510
Проблема в том, что когда список будет расширен (будут добавлены новые ресурсы), то записываться они будут отдельно от основного списка, а хотелось бы сгруппировано
Что ты имеешь ввиду? Ресурс определяется registry name, от того, что появятся новые имена не появится необходимость в другой таблице

Хотелось бы, чтобы предметы одной категории находились рядом, сгруппировано.
Об этом нет смысла думать. SQL - декларативный язык, когда пишешь на нем, нужно думать о том, что тебе нужно, а не как это будет сделано
 
Сверху