我有大约100万条记录,在24天内(每天一条)回答问题。
我想要完成的是在整个日子里收集所有正确的答案然后进行抽奖选择,例如如果订阅者正确回答了所有24个答案他/她有一个选择的概率高于仅正确回答一个答案的订阅者。
我正在使用 Linq-to-Sql ,因为我更习惯使用它,而不是纯粹的T-SQL,即使这将是T-SQL的搬运工,但{ {3}}帮助我,所以这就是我到目前为止所做的:
// all correct answers id's
var correct = from a in JK_ChallengeAnswers
where a.correct
select a.challenge_answer_id;
// all correct answers
var query = from cr in JK_ChallengeResponses
where correct.Contains(cr.challenge_answer_id)
select cr;
query.Count().Dump(); // 978144
var random = new Random();
int pos = random.Next(query.Count()); // random select
query.Skip(pos).Take(1).Dump(); // get one...
这是直截了当的...它是线性的,没有“票证”的方法,这里有一个人回答了1个问题作为回答所有24个问题的人的确切胜率......
我如何去尝试彩票方法,我的下一步应该是什么?
无需向我展示代码,我可以得到它,只有步骤,因为我没有得到它们。
答案 0 :(得分:1)
答案 1 :(得分:0)
创建一个包含所有正确回答的人名的视图。然后,您可以使用随机数生成器来选择id与随机数匹配的人。如果您需要更多帮助,请问我。
对我来说,彩票方法已经为你效果,因为每个人每天都能猜出24天的答案。这意味着他们在你的表中有24个答案,外键指向正确的答案。通过这样做,如果我向数据库提交了24个条目,我有更好的机会得到正确的答案。这将使我的方法有效。
如果您对此如何运作有不同的想法,请告诉我。