[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Структура базы данных онлайн игры
Страницы: 1, 2, 3
sergeiss
bestxp, про Постгрес я тоже думал сказать smile.gif Но решил, что не стоит. Потому что, если человек привык к мускулю, то это если не навсегда, то надолго.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Valick
пока только Игорь плюсик заработал, остальные "в молоко" smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
Цитата
1) можно stored proc которая все подсчитает


для этого как бэ вьюхи придуманы)

Цитата
пока только Игорь плюсик заработал, остальные "в молоко"


считай я в акуе biggrin.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
stump
Цитата (Игорь_Vasinsky @ 7.05.2015 - 20:48)
Цитата
1) можно stored proc которая все подсчитает


для этого как бэ вьюхи придуманы)

Считать по вьюхах? СУБД посчитало в stored proc и через data maper выдало расчитываемые параметры в base class который передал во view через контроллер?

Вести расчеты в view не есть best practice.

_____________
Трус не играет в хокей
Игорь_Vasinsky
Подсчёта это умный select. а это дело вьюх


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Xpund
Цитата
Вопрос 1.
Создать таблицу, в которой будет подробно описывать каждая валюта.

t_money

id | name | img
-------------------
1 | камни | a.png
2 | кирпичи| b.png
3 | доска| c.png
и т. д.

PS: По мне это самый оптимальный вариант.

Для уменьшения нагрузки, я бы убрал третью графу (img), а саму картинку выбирал по id средствами php, или на каком там у Вас игра будет языке.

Цитата

Таблица 2.

t_history_money

id_history | id_money | numbers | type

id_history - ид из таблицы t_history
id_money - ид валюты из таблицы t_money
numbers - сколько было затронуто данной валюты
type - добавлялась или отнималась валюта (0 или 1)


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


тут вообще можно оставить 2 поля

не делить на валюты, а конвертировать опять же средствами php к примеру:
1 000 000 бронзы = 1 000 серебра = 1 золота
Заносить без type, а просто со знаком +-

Ну и это
Цитата
myisam - медленно обрабатывает инсерты но быстро выполняет селекты из основных минусов данный движок не поддерживает связи (в сторону которых Вам можно было бы посмотреть) и транзакции.
innodb - поддерживает связи и транзакции, быстрый в инсертах но медлителен в селектах.

стоит учесть =)))

Вот как то так всё)

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
123456
Цитата
тут вообще можно оставить 2 поля

не делить на валюты, а конвертировать опять же средствами php к примеру:
1 000 000 бронзы = 1 000 серебра = 1 золота


Допустим на постройку забора требуется 30 дерева, 40 камней и 50 энергии.

В истории операций должны отображаться эти три валюты
Игорь_Vasinsky
Цитата
Допустим на постройку забора требуется 30 дерева, 40 камней и 50 энергии.


currency
cid | cname

1 | дерево
2 | камень
3 | энергия

orders

oid | uid | cid | summ

id оплаты | id юзера | id валюты | сумма

12 | 1 | 1 | 30
12 | 1 | 2 | 40
12 | 1 | 3 | 50

select  
o.summ,
c.cname
from orders o
left join currency c on c.cid = o.cid
where o.oid = 12 and o.uid = 1


summ | cname
-----------------------
30 | дерево
-----------------------
40 | камень
-----------------------
50 | энергия

к справке
Цитата
не делить на валюты, а конвертировать опять же средствами php к примеру:

если операцции над данными в бд можно выполнить средствами БД - то это и стоит делать средствами БД

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
stump
Цитата (123456 @ 8.05.2015 - 13:20)
Цитата
тут вообще можно оставить 2 поля

не делить на валюты, а конвертировать опять же средствами php к примеру:
1 000 000 бронзы = 1 000 серебра = 1 золота


Допустим на постройку забора требуется 30 дерева, 40 камней и 50 энергии.

В истории операций должны отображаться эти три валюты

К примеру может быть: таблица.где написано что сколько стоит (дом: 3 дерева,5 камней). И есть таблица что построил юзер: дом, забор, сарай, курятник пр. Когда надо узнать затраты тянем из одной таблицы что построил и джоиним с таблицей что где почем. Т.о мы не храним лишние данные о том что растрачено. и т.п.

_____________
Трус не играет в хокей
Быстрый ответ:

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