需求是这样的:
每周出5道题,其中三道设计题目,两道开发题。每周都要自动更新题目。
答对加一分,打错减一分。
看似很简单,可我开发了3天。用了很笨的方法。
把每周五道题目,20个选择,再加上5个备选答案都放在一个类里面(TimeQuestion)。
根据时间区间,来获取每周唯一一条数据。(Time)
类之间的关系是Time--TimeQuestion 一对一的。
最后通过和数据库中备选答案值与用户选择答案值做判断的。
而不是拿ABCD作为答案。
哪位有更棒的设计方法。麻烦告诉小弟我。。。。这几天都被这个搞的头疼了。
[quote]把每周五道题目,20个选择,再加上5个备选答案都放在一个类里面(TimeQuestion)。 [/quote]
这样的设计扩张性不好,举个例如: 如果需求改了,每周要求出10道题,这个改动就太大了。
个人觉得可以这样设计:
把题目设计成一个类,每道题目是一个对象,可以把这道题目的4个选择和正确的答案设计成这道题目的属性,在加上一个时间属性(出题时间,个人觉得Time和问题暂时没有分开的必要)。这样以后改要求,每周出10道题目,你至少不用改数据库了。
上面的设计还有很多问题,如果一道题目不是只有4个选择呢(5个,6个选择),或者答案可以有多个,甚至题型都可能改变(问答题,填空题等等)。如果考虑这些扩展,你的设计就还要变。