幻想联盟和设计实施表

时间:2017-07-13 20:03:25

标签: php mysql

我正在为一个纸牌游戏做一个幻想联盟网站,并且需要一些设计实施建议和一些疑问。

快速上下文,每周都有玩家,牌和锦标赛。

用户可以选择x卡和x玩家,并在每场锦标赛后根据所选的牌/玩家结果获得积分。每个用户都可以在活动开始前更改他的玩家/卡片。

a)锦标赛(结果)表似乎对于玩家的结果非常直接,但是对于卡片,我需要另外一个表格或者将所有表格放在相同的位置,增加行数和空行数?

有了这个,我在这个表中思考:

CREATE TABLE results
    (`tournament` varchar(255) , `date` date, `place` varchar(255), `type` varchar(255), `format` varchar(255), `season` int , `player`  varchar(255), `country` varchar(255), `standing` int)
;

INSERT INTO results
    (`tournament`, `date`, `place`, `type`, `format`, `season`, `player`, `country`, `standing`)
VALUES
    ("Poker star","2018-01-15","Berlin","free for all","holdem","1","Michael","US",1)
;



CREATE TABLE user
    (`player` varchar(255), `id` int,   `country` varchar(255), `tournament` varchar(255) , `date` date, `place` varchar(255), `season`  int,`added`)
;

INSERT INTO user
VALUES
   ("Michael",1,"US","Poker star","2018-01-15","Berlin",1,"2017-06-13")
;

现在要添加卡片选择我应该添加行卡varchar,数量以及何时使用put值否则为NULL?这是一个做数据库的好方法吗?在未使用的行中添加带NULL的列?

拥有如此多的空列对我来说似乎很尴尬。

现在为了获得用户的积分,我应该做一个观点?有没有办法在x日期过后触发和更新视图? (自动更新统计数据)。

1 个答案:

答案 0 :(得分:1)

我做这样的事情:

player_cards
-------------
id bigint autoincrement
player_id
tournament_id
card_id
card_qty

如果你不挑选每场比赛,你可以跳过tournament_id字段,但是不可能知道他们为特定锦标赛所用的牌。