实施彩票号码数据库的最佳方式?

时间:2014-03-28 08:34:01

标签: sql database database-design nosql

我正在尝试构建一个涉及我当地彩票系统的应用,并且需要存储这些数字。每次抽奖都有以下内容:

  • 日期
  • 抽奖号码
  • 获奖号码(其中6个)
  • 额外获奖号码

我希望能够从这些数字中提取以下信息,例如:

  • 一般出现的每个号码的频率
  • 标准6个中奖号码中出现的每个号码的频率
  • 每个号码出现的额外中奖号码的频率
  • 检索号码和出现号码的相关日期
  • 当然,只需显示给定日期和/或抽奖号码的数字

我的问题是中奖号码和额外中奖号码。我能想到以下几点:   - 将6个中奖号码作为列表或类似物品(DynamoDB)存储,并单独存储附加号码   - 分别存储每个号码:wins1,winner2等... additional_number

我对建议持开放态度,但尚未确定使用特定数据库,希望听到您对此的想法和专业知识。我认为在一天结束时我会需要额外的表来分别跟踪每个号码的频率。

谢谢!

1 个答案:

答案 0 :(得分:1)

由于您计划使用不同的查询查询数据库,我建议使用标准SQL数据库而不是noSql方法。如果要存储的数据没有很好地定义,NoSQL数据库真的会闪耀。但是,您有一个清晰的数据模式要存储。以下是我的建议:

table drawing:
-------------
id | date | draw_number | lottery_id

table winning_number:
--------------
id | number | position | drawing_id

使用该设计,如果在位置字段中将数字绘制为额外数字,则可以存储信息。如果您知道所有数字的绘制顺序,您也可以在现场存储它。

id应该是每个表中的主键。 winning_number.drawing_id是绘图表的外键。

lottery_id也是表格的外键,用于描述彩票系统的参数。也许是这样的:

table lottery
---------------
id | total_numbers | country | whatever

关于频率的查询现在应该很容易。如果您还有其他问题,请询问。