刀塔传奇公会管理系统 ------ Pgsql 后台

背景:

系统会给出公会人员的情况,例如 几月几日XXXX加入公会,几月几日XXXX离开工会。

系统会给出所有人最近七天的活跃总数。

需要计算出所有人最近七天的平均活跃情况,加入时间不足七天的玩家,按实际天数计算。

数据存储方式选择:

1.   开始使用的Excel做的,编写了一些宏,增加了一个按钮来触发这个宏。数据稍微一多,弊病就露出来了。

输入活跃数据时,需要手动寻找名字在第几行。多天的数据整理需要手工处理,数据量大时很容易造成数据错乱或数据丢失。

2.  计划使用Access数据库来存储,但发现Access的查询分析器需要单独下载,并且每次仅支持一句SQL执行。

3.  更换Window下的MySql来存储数据。一切安装完毕后,创建数据库的表后,发现表的内容不能很好的支持中文。编码问题,网上简单查找了一下解决办法,貌似需要新版的,而且仍然需要操作很多。有需要的可以参考一下http://www.jb51.net/article/18560.htm

4.  本人比较数据Pgsql,还是用这个吧,不存在编码问题,完全免费开源。经过一番折腾,终于在Win7下搞定了。

数据库设计:

为了达到好用的效果,又去翻了书本温习了范式的概念,感觉关系数据库能做到3NF就不错了。

为了不产生大量的冗余数据,计划讲成员管理与贡献值数据分离。Member表中主键打算用游戏内的中文名字(也可以给每个成员定一个内部的id,效果相差应该不多)。

member表中的字段为 name,indate,outdate。name和indate字段为Not Null。若outdate为Null表示成员当前还在工会。

data表中的数据每天会新增约50条数据,当时间久了会产生一张很大的表,势必会影响访问效率。到时候想再变动就很困难了。为此计划data表按照日期来命名,也就是说每天都会产生一个新表出来。表内的字段只有一个,就是整数类型的活跃值。

源码:

-- Table: gonghui.member

-- DROP TABLE gonghui.member;

CREATE TABLE gonghui.member
(
  name character varying(20) NOT NULL,
  indate character varying(20) NOT NULL,
  outdate character varying(20),
  CONSTRAINT member_pkey PRIMARY KEY (name )
)
WITH (
  OIDS=FALSE
);
ALTER TABLE gonghui.member
  OWNER TO root;
-- Table: gonghui.data20141209

-- DROP TABLE gonghui.data20141209;

CREATE TABLE gonghui.data20141209
(
  name character varying(20) NOT NULL,
  data integer,
  CONSTRAINT data20141209_pkey PRIMARY KEY (name ),
  CONSTRAINT data20141209_name_fkey FOREIGN KEY (name)
      REFERENCES gonghui.member (name) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE gonghui.data20141209
  OWNER TO root;

-- Function: gonghui.lesssevendays(integer)

-- DROP FUNCTION gonghui.lesssevendays(integer);

CREATE OR REPLACE FUNCTION gonghui.lesssevendays(days integer)
  RETURNS integer AS
$BODY$
BEGIN

    if (days > 7 ) then
        return 7;
    end if;

    if (days < 1 ) then
        return 1;
    end if;
    return days;
END;

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION gonghui.lesssevendays(integer)
  OWNER TO root;

lesssevendays(days integer)

-- Function: gonghui.fn_calc_result(character varying, character varying)

-- DROP FUNCTION gonghui.fn_calc_result(character varying, character varying);

CREATE OR REPLACE FUNCTION gonghui.fn_calc_result(psv_date character varying, psv_compare_date character varying)
  RETURNS integer AS
$BODY$

declare

PSV_SQL character varying(512) := ‘‘;
PSV_TBL_NEW character varying(512) := ‘‘;
PSV_TBL_OLD character varying(512) := ‘‘;

BEGIN

drop table dataresult;

PSV_TBL_NEW := ‘data‘ || psv_date;
PSV_TBL_OLD := ‘data‘ || psv_compare_date;

PSV_SQL := ‘
create table dataresult as select
 m.Name as name,
 lesssevendays(to_date(‘‘‘ || psv_date || ‘‘‘,‘‘‘|| ‘yyyymmdd‘‘‘|| ‘) - date(m.Indate)) ,
 d.data/ lesssevendays(to_date(‘‘‘ || psv_date  || ‘‘‘,‘‘‘ || ‘yyyymmdd‘‘‘|| ‘) - date(m.Indate)) as avg_data,
 d.data as newdata,
 y.data as olddata
 from member m,  ‘ || PSV_TBL_NEW || ‘ d,  ‘|| PSV_TBL_OLD ||‘ y
 where m.Name = d.name and m.Outdate = ‘‘‘‘ and m.name = y.name‘;

    EXECUTE(PSV_SQL);
    return 0;
END;

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION gonghui.fn_calc_result(character varying, character varying)
  OWNER TO root;

fn_calc_result(character varying, character varying)

时间: 2024-10-19 13:09:03

刀塔传奇公会管理系统 ------ Pgsql 后台的相关文章

刀塔传奇公会管理系统 ------ Python界面访问Pgsql

今天时间不多了,只能写一部分了. Python连接Pgsql的库有三个,目前 psycopg2 用的比较多,随即下载安装了.没什么难点,参考个例子就能用了. 图形界面使用 wx 的库,因为这个有个相当好用的图形制作的工具 ----   wxFormBuilder. 有了这个,你可以单刀直入的去设计你的图形界面的样子.真真正正的实现了界面与功能的分离,设计这个玩意的人思想很牛逼. 使用方法就是,画好界面(同时写上每个事件的回调函数名字),将生成的python代码(其实可以生成好多种语言的)保存到一

cocos2d-X 卡牌手机游戏《刀塔传奇》完整源码下载

源码介绍 <刀塔传奇>--cocos2d-x手机游戏源码下载 <刀塔传奇>是一款以Dota故事为背景的动作卡牌手机游戏战斗DEMO,以创新的轻操作战斗玩法,打破传统卡牌游戏操作呆板.无脑等待的瓶颈,玩家指尖手动掌控英雄大招,把握施放大招的顺序,尽享酷炫技能带来的极致视觉体验.<刀塔传奇> iOS/安卓平台长时间高居排行榜榜首,创下了2014年手游人气神话. 大小:7 MB 测试环境 引擎版本:3.0 开发工具:vs2012 测试说明:基于cocos2d-x3.0和vs2

简洁AngularJS框架后台管理系统bootstrap后台模板

最近在做一个后台管理的项目,但是没有设计图完全,所以就发现一款非常不错的模版. 这个模版是基于 AngularJS 和 bootstrap 的后台管理系统模版. Minovate是 AngularJS 高级管理系统模板.它建造在流行的Twitter Bootstrapv3框架上.Minovate完全基于HTML5 + CSS3标准.是充分响应的支持每一个设备和浏览器. Minovate包含许多示例页面可以使用它的元素和可定制的.你可以选择6种颜色的头部样式.导航.你可以切换固定导航,标题和选择等

2015元宵节礼物——《刀塔传奇》骨骼动画查看器,开源啦!

首先声明,我不是第一个做出类似查看器的首作者,我所知道的首作者是johance,以下是它在cocoschina发布的贴子. 分享 刀塔查看器Flash導出版本(帶詳細解析說明)和Flash導入導出批處理文件      http://www.cocoachina.com/bbs/read.php?tid-219173.html 贴子里面描述了<刀塔传奇>骨骼动画的文件格式,我是参考这个文件格式写出来的.我的实现思路是将*.fca文件转换成DragonBonesCPP所需要的格式,然后就可以通过D

游戏技术汇:莉莉丝COO张昊解剖《刀塔传奇》开发经验心得

游戏兵工厂新闻报道: 日前,<刀塔传奇>的研发公司莉莉丝COO张昊在成都GMGDC大会上分享了从<刀塔传奇>谈如何吸引和留住重度游戏用户的主题分享,张昊通过四个时间维度去解剖了<刀塔传奇>的研发经验心得,分享了很多干货,针对张昊的主题演讲进行了深度的解读: 从时间线上一个游戏分四个阶段,每个阶段侧重点不同,大概概括为: 第一:进入游戏的前十分钟,侧重点是“美术”; 第二:游戏里面的第一天,侧重点是“战斗”; 第三:游戏里面的第一个月,侧重点是“成长”; 第四:玩游戏一个

unity游戏之友利拟收购《刀塔传奇》发行商中清龙图

1月23日,已经停牌4个月的友利控股(000584)发布公告,宣布由于进入重大资产重组停牌程序,申请继续停牌,拟购买中清龙图 100%股权. 根据公告,友利控股拟购买资产基本情况:本次拟发行股份购买的资产为中清龙图 100%股权,中清龙图主要从事网页游戏.手机游戏等业务,是国内领先的网络游戏的开发商和发行代理商之一.中清龙图拥有强大的研发能力.拥有丰富的产品储备及运营能力. 2014 年中清龙图总资产约 10 亿元,净资产约 6.5 亿元(以上数据未经审计). 在2015年1月24日,据狗刨学习

刀塔传奇吐槽

1.竞技场建议:竞技场增加手动摆放位置的机制,使PK更有技巧型,可以由玩家定义好,位置进行进攻.防守.如果可以在PK的时候,进行位置更好调整更好,如果在PK挑战的时候,点一号位和三号位对调,让挑战的人更有挑战优势,现在的挑战PK纯属运气.英雄培养程度决定了大部分因素. 如今现有的模式,同样两只队伍5个共同的英雄,最后结果运气成分占有主要地位,游戏GM可以在各论坛推出各种特色搭配,最好形成胡克的形式,比如肉盾流.减甲流.法师流.物理攻速流.物流加攻环流等等.让游侠有多种随机打法,竞技场第一的玩家出

《刀塔传奇》第六章通关攻略

<刀塔传奇>第六章提尔湖通关攻略 对于很多玩家来说,把<刀塔传奇>每个副本拿下三星是一件强迫症的事情,绿云应用的小编也是如此,看着地图上满满的三星通关感觉很舒服~接下来小编给大家带来的是这一期第六章荆棘山谷提尔湖的通关攻略 美丽的湖泊干净的如同一面镜子周围树荫环绕,然而这样的美景结果被一群兽人包围了,拿起我们的武器和绿云应用中心的小编一起去打败他们吧. 在提尔湖这关,敌法的阵容搭配的很好,所以我们面对的阵容压力还是很大的,敌方的阵容带着两个治疗,治疗量很高,意味着打消耗战的话损失会

unity游戏之刀塔传奇山寨版:斥资千万推海外电视广告

[狗刨学习网专稿,转载请注明出处] 狗刨学习网报道/前不久,狗刨学习网曾经报道过刀塔传奇山寨版海外月流水破3000万的消息,而最近,该公司(青岛盛世文明即uCool)在海外市场有了比较大的动作,该公司准备为其手游<Heroes Charge>推出电视广告,更让人惊讶的是,居然还是在美国'超级碗'橄榄球赛期间,据狗刨学习网了解,2014年'超级碗'期间的30秒广告费高达400万美元,而该公司此次的电视广告成本将超过千万人民币,uCool这次很明显是下了血本. 其实,这是该公司第二次在电视平台推出