2013-08-16 62 views
0

这个问题并不是什么新东西,但它有一点小小的变化。 我的网页是用户下注的会员页面。我的想法是为用户创建一个新表(使用命名约定,如TABLE userBet + $ userid)投注。用户登录信息已经处理完毕,我的目标是将用户的赌注保存到新表中。用户注册时创建的表格。这将有希望使分数计数更容易。我是对还是错?这可以以更好的方式完成吗? (一切都在PHP MySQL的完成)在php中创建注册表

用户注册 - 表,投注获得创建

> “CREATE TABLE $用户ID,id_bet,游戏,结果,指出”

然后匹配这张表反对正确的结果?

所以我再次问:这是一个好办法吗?用userID创建一个表是一件聪明的事情吗?

EDIT

的投注总是40点的匹配,这使得与巨大的列和行的表。 我应该制作40个表格,每个游戏一个呢?并把所有用户放在那里?

+2

强烈建议不要更改用户输入模式。只需要user_id表user_id列 –

+0

如果我有每个赌注的user_bets表,那么我将有一个难以计数的分数?或者如果这是最好的方式,那么我需要这样做:)? – Rocksteady

+0

你得计算什么分数? Total points?:)'SELECT SUM(points)FROM user_bets WHERE user_id = $ userID'。这将给你给定的用户ID上的点的总和。如果你有单独的表,你将有'SELECT SUM(points)FROM $ userID',这是完全相同的,但查询不同的表。如果你想使用查询缓存,查询不同的表格会让你很难缓存结果,如果你有10000个用户,你最终会在你的数据库中得到10 000个表格。你的分贝会变得沉重。 –

回答

1

张贴作为一个答案,由于作者的要求:)

建议数据库模式:

matches

id | name | 
--------------- 
1 | A vs B | 

user_bets

id | user_id | match_id | points | result | 
------------------------------------------- 
1 | X | 1  | Y | Z | 

凡match_id有关上matchesid

USER_ID = user.id

user_bets是只有一个表,包含的所有信息。不需要单独的表格,因为从评论中可以明显看出,它被认为是不好的做法,通过用户输入来改变数据库模式。

3

我是对还是错?

你错了。动态地改变你的数据库模式只会使它更难一起工作。这样做没有什么好处。您可以通过将所有投注存储在同一张表中来做同样的事情,添加一列userid