日期:2014-05-18  浏览次数:20690 次

关于设计数据库的 问题
现在想搞一个后台 录入对应的体彩数据
就象以下的数据
彩种 期号 号码  
超级大乐透 09025 期 03 17 22 23 33 + 04 10 
足球胜负彩 09017 期 33331030111331 
六场半全场 09020 期 333333331100 
四场进球彩 09022 期 31102100 
七 星 彩 09026 期 3 9 0 2 8 8 8 
排 列 三 09060 期 4 1 1 
排 列 五 09060 期 4 1 1 9 7
二十二选五 09060 期 09 13 14 16 19
三十六选七 09025 期 11 14 22 26 29 36 + 03 

想设计这样的数据库,是不是 每个彩种 作为一个表,里面的号码 就是表里面的列,有多少个号码就有多少个列
因为我以后查询的数据是以xml输出的,那应该怎样设计了?
那个号码的字段是 以字符串的方式 存放(整个串号码),还是以整型 一个字段放一个号码?

------解决方案--------------------
SQL code
个人认为:

最好 每个彩种一种表。

对于每一张表的设计有两种方案:
1、该彩种有多少个数字,就有多少个列,这样的话,对数据的统计等等相对来说比较方便一点,但是表中的空数据就太多了。并且象双色球这样的也不太合适,就需要两张表,或者表中的列就比较多了
2、只记录中奖的数字。这样的话,表的列就比较少,也没有冗余的空数据。但是如果对数据要进行统计的话或者查询的话,相对来说比较麻烦
还有一种就是把中奖的数字作为一个字符串放到一个列里面,这种设计的优缺点没有考虑过,

------解决方案--------------------
SQL code
建议每个彩种一个表
超级大乐透
id 期号  序号 号码 备注
1  09025 1    17   正常号
2  09025 2    22   正常号
3  09025 3    23   正常号
4  09025 4    33   正常号
5  09025 5    04   特别号 
6  09025 6    10   特别号
7  09026 1    17   正常号
8  09026 2    22   正常号
9  09026 3    23   正常号
10 09026 4    33   正常号
11 09026 5    04   特别号 
12 09026 6    10   特别号

足球胜负彩
id 期号  号码
1  09017 33331030111331 

或者
id 期号  序号 号码
1  09017 1    3
2  09017 2    3
3  09017 3    3
4  09017 4    3
5  09017 5    1
6  09017 6    0
7  09017 7    3
8  09017 8    0
9  09017 9    1
10 09017 10   1
11 09017 11   1
12 09017 12   3
13 09017 13   3
14 09017 14   1

....

------解决方案--------------------
有关xml的操作请参见:

SQL code
SQLServer2005 XML在T-SQL查询中的典型应用
http://topic.csdn.net/u/20081107/17/68aaf5a9-c596-4ab5-ae18-f3370b2ab35b.html

------解决方案--------------------
同意每个彩种一个表,理由是更有针对性。所有彩种放在一起没有这个必要。

如果全部放在一起,分析运算起来会很麻烦
------解决方案--------------------
1.因为每次的查询预测等都是根据一种彩票的情况预测自身下期等,所以每种彩票一张表
2.建议每个号码设置一列,因为每次要对每个号码的预测,这样统计预测方便