【发布时间】:2018-02-03 19:54:51
【问题描述】:
我正在开发我的第一个 django 项目,这是一个体育博彩游戏。
我的模型是:
class Game(models.Model):
home_team = models.CharField(max_length=200)
away_team = models.CharField(max_length=200)
home_goals = models.IntegerField(default=None)
away_goals = models.IntegerField(default=None)
class Bet(models.Model):
gameid = models.ForeignKey(Game, on_delete=models.CASCADE)
userid = models.ForeignKey(User, on_delete=models.CASCADE)
home_goals = models.IntegerField()
away_goals = models.IntegerField()
score = models.IntegerField(default=None, null=True)
计算分数的逻辑是:
WHEN polls_bet.home_goals = polls_game.home_goals AND polls_bet.away_goals = polls_game.away_goals THEN 2
WHEN polls_game.home_goals > polls_game.away_goals AND polls_game.home_goals > polls_game.away_goals THEN 1
WHEN polls_bet.home_goals < polls_bet.away_goals AND polls_game.home_goals < polls_game.away_goals THEN 1
ELSE 0
我能够使用将所有数据组合在一个表中的数据库视图轻松解决它,但它似乎不适用于 django 迁移..
所以我在考虑更新游戏目标后的sql触发器,但是我不知道如何传递用户ID等条件。
第二个想法是创建额外的“分数”表:
gameid,
userid,
betid,
score
但话说回来,我不知道如何计算分数。 请建议如何正确完成此操作,而不使用 sql 视图。我感谢所有答案!
【问题讨论】:
标签: django sqlite django-models triggers