如何在SQL上创建评分系统?

时间:2015-03-12 06:46:24

标签: php sql-server ranking rank tabular

我想在我的网页上添加评分排名系统。

网页正在使用SQL中的一些信息,我的主要问题是:

SQL中有一个表格,显示了玩家的库存。在此表中:

  

CharID | Slots (of inventory) | User Item ID

另一个表格显示"用户项目ID"是:

  

Item ID Number | values of item (with count)

例如;在这张表中;

  

用户项目ID |物品编号|选择等级(加上项目的值等; 90   等级+ 7)

我想创建一个新表,其中包含:

  

用户项目ID |带有项目点的项目​​ID,|它必须添加(选择   等级)到项目点)

同样如:

  

用户名|用户项目ID |项目ID与项目点|选择级别|总   点

     

xxx ------------------- 5 -------------------- 90 ----- ---------------- 7 ---------- 97

但我不知道该怎么做。创建此项目点数后,最高分必须位于排名的顶部。

有人有任何想法吗?

有图片;

http://prntscr.com/6fqumn

这是第一个我可以看到会员ID,会员的库存槽以及会员正在使用的表格。

http://prntscr.com/6fqvag

这是我能看到的第二个表ID64与使用成员相同,RefItemID id不同,OptLevel是Item Point,MagParamNum也是项目点。

所以,我想创建一个新表CharID(第1张图片) - 用户物品ID(第1张第2张图片)--- OptLvel(第2张图片)--- MagParamNum(第2张图片) - 总点数(OpLevel) + MagParamNum +我给出的分数)

1 个答案:

答案 0 :(得分:1)

我认为您不需要创建一个包含其他表中已存在的所有信息的新表。

您需要在项目表中将userid作为外键,以帮助您识别哪个项目属于哪个用户。

我不确定存储optLevel的位置,但我假设您将其存储在名为optTable的另一个表中。

您需要做的是在SQL数据库中创建一个View:

CREATE VIEW [newTable] AS
SELECT u.userid, u.username, i.itemPoint, o.optLevel, (i.itemPoint+o.optLevel) AS Total
FROM userTable u
INNER JOIN itemTable i ON u.userid = i.userid
INNER JOIN optTable o ON u.userid = o.userid`
ORDER by (i.itemPoint + o.optLevel) DESC

创建此视图后,将在数据库中完成并存储信息和计算。

在创建视图或添加新用户之前,您需要检查该用户是否不存在,但您将在您的php代码中执行该操作,或者使用

的方法
> SELECT COUNT(username) FROM username.

然后,您可以输入以下内容来访问该视图:

SELECT * 
FROM newTable
WHERE userid = $id