这个循环是多余的吗?

时间:2014-09-03 23:25:18

标签: sqlite

感兴趣的三个表格是:

  • 活动,包含例如柏林马拉松的各种细节
  • 结果,包含各种字段,包括用户的比赛时间和事件的FK,以及
  • 目标,用户想要运行的事件的FK,他们想要运行它的时间段的字段,以及最终用户达到目标的FK。< / LI>

显然,用户实现目标的比赛事件必须是目标事件。但并非所有目标都已实现 - 有些可能永远不会实现。

这是一个糟糕的设计吗?任何人都可以建议一种更好的方法来解决这个问题吗?我在django项目中使用sqlite。

1 个答案:

答案 0 :(得分:0)

你的活动表没问题。

但是你的目标表设计搞砸了提议的事件和实际完成的事件。

我认为结果表可以与目标表合并到一个新的结果表中。

由于一个用户可能想要运行多个事件。在新的Result表中,它应该是:

UserID EventID TimeProposed ActualTimeUsed Achieved
1      1        1 hour      1.1 hour       No
1      2        1.5 hour    1.2 hour       Yes

因此,您提到的循环将被删除,因为每行只有一个事件。 (UserID和EventID仍然是其他两个表的FK。)

可以使用查询来更新Achived列,以确定ActualTimeUsed&lt; = TimeProposed。