小编ras*_*spi的帖子

何时在PostgreSQL中使用继承表?

在哪些情况下你应该使用继承表?我试图非常简单地使用它们,并且继承在OOP世界中似乎不像.

我认为它的工作原理如下:

users包含所有用户级别所需的所有字段的表.表像moderators,admins,bloggers,等,但字段从父检查.例如,users有电子邮件字段和继承bloggers现在也有它,但它并不是唯一的两个usersbloggers同时.即.就像我向两个表添加电子邮件字段一样.

只有我能想到的用法是通常使用的字段,如row_is_deleted,created_at,modified_at.这是继承表的唯一用法吗?

postgresql

74
推荐指数
3
解决办法
4万
查看次数

有没有办法直接从SELECT查询匹配IP与IP + CIDR?

就像是

SELECT COUNT(*) AS c FROM BANS WHERE typeid=6 AND (SELECT ipaddr,cidr FROM BANS) MATCH AGAINST 'this_ip';

因此,您不首先从数据库中获取所有记录,然后逐个匹配它们.

如果c> 0则匹配.

BANS表:

id int auto incr PK
typeid TINYINT (1=hostname, 4=ipv4, 6=ipv6)
ipaddr BINARY(128)
cidr INT
host VARCHAR(255)
Run Code Online (Sandbox Code Playgroud)

DB:MySQL 5

查询时已知IP和IPv6类型(4或6).

IP例如是二进制格式的:: 1

BANNED IP例如是:: 1/64

mysql ip mask bitmask cidr

20
推荐指数
1
解决办法
2万
查看次数

多人/在线游戏编程中最常见的新手错误?

你看过什么样的新手错误,有什么治疗方法?

一次又一次发生的是客户端没有以任何方式对服务器进行检查.

例如:

  • 用户反编译Flash游戏源或收听网络流量并查看高分数据的去向,并发送虚假的高分甚至没有玩游戏.
  • 用户使用教练并获得甚至可能不会出现在当前级别的项目.这发送到服务器像"客户端X得到项目Y",服务器只接受.

简单的治疗方法当然只是将游戏客户端作为服务器的API来处理.然后用户可以尽可能多地使用训练器和其他内存操作,但服务器只是说你不能这样做.将服务器视为一个数据库,您可以在其中使用游戏规则查询事物.

例如

  • 客户:开始游戏
  • 客户端:连接到服务器
  • 客户:查询服务器的可用资金数量
  • 用户:使培训师能够将资金设置为无限
  • 客户端:server.buyItem('非常昂贵')
  • 服务器:检查游戏状态(用户现在可以买东西).检查玩家[0] .money - >没有奖金.
  • 客户端:server.buyItem('可以得到这个')
  • 服务器:检查游戏状态(用户现在可以买东西).检查玩家[0] .money,好的.player [0] .items.add('可以得到这个')这将降低玩家[0] .money的成本.然后通知客户端发送(播放器[0],'项目','可以得到这个'); 发送(播放器[0],'钱',播放器[0] .money).

另一种方法是记录客户端的移动并将其发送到服务器播放它的高分服务器.当然,这可能导致该记录非常大.

network-programming

4
推荐指数
2
解决办法
2566
查看次数

标签 统计

bitmask ×1

cidr ×1

ip ×1

mask ×1

mysql ×1

network-programming ×1

postgresql ×1