有这样一堆数据,基本格式是这样的:
Group 1
Class 1 - 984 Points
Point 1
y: 346.102652 x: 140.217103 scale: 51.539823 orientation: -0.980912
Descriptor:128 dimensions.
0 2 0 0 3 105 38 2 62 5 1 0 0 22 53 159 159 0 0 0 0 0 3 159 94 0 0 0 0 0 1 80 13 9 5 22 30 61 29 8 147 18 2 1 0 15 102 159 93 0 0 0 0 0 52 159 27 0 0 0 0 0 1 45 21 10 3 9 4 0 0 0 159 35 1 1 0 0 1 50 110 9 0 0 0 0 5 50 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 4 12 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
Point 2
y: 346.102652 x: 140.217103 scale: 51.539823 orientation: -1.855678
Descriptor:128 dimensions.
139 149 16 6 0 0 0 0 149 149 1 0 0 0 0 0 45 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 64 4 2 0 0 23 54 149 144 1 0 0 0 0 43 127 51 6 0 0 0 0 8 0 0 0 0 0 0 0 0 26 5 4 2 8 18 96 72 116 149 66 6 6 3 3 25 25 149 40 0 0 0 0 0 0 6 1 0 0 0 0 0 0 0 0 1 8 18 6 0 0 20 11 3 6 3 0 0 1 26 2 0 0 0 0 0 0 0 0 0 0 0 0 0
......
Point 984
y: 239.457105 x: 417.113207 scale: 0.898385 orientation: 1.633814
Descriptor:128 dimensions.
131 28 0 0 0 0 0 9 131 83 9 12 20 9 2 15 3 9 10 50 131 31 1 3 15 59 27 15 18 3 2 13 125 54 0 0 0 0 0 1 131 100 7 8 13 4 1 8 13 7 5 28 131 62 2 3 18 22 9 7 38 27 6 8 129 23 0 0 0 0 0 8 131 14 0 0 5 4 4 16 30 1 0 0 70 131 25 11 2 0 0 0 20 95 52 6 91 14 0 0 0 0 0 7 131 55 0 0 0 0 3 10 56 24 1 10 17 72 23 11 0 0 0 24 34 79 22 0
Class 2
...
Class 3
...
Class N
这样的Group有几万个,每个Group里有10个左右的Class,每个Class的Points数量是不定的(一般为100~1000)。程 序中最常用的操作是提取同一个Group中的所有数据,与外部一组结构相同的数据进行比较。对于这样的需求,如何设计数据库才能获得最好的性能?最简单的 设计方法当然是Group,Class,Points分别设计为一个表,三者直接通过外键进行关联,但这样的设计方法将导致Points的记录数达到上千万条,这简直是不可想象的。如果哪位兄弟有类似的项目经验,还请多多指教。
只用建一个表Group.将class及points设计成XML格式.
最终的数据格式如下:
Group1 Class1XML
Group1 Class2XML
Group2 Class1XML
Group2 Class2XML
........
至于XML格式的设计就需要自己动脑筋了.
程 序中最常用的操作是提取同一个Group中的所有数据,与外部一组结构相同的数据进行比较。
比较是比较什么呢?如果是单纯的比较结构是否一样,而不需要获取哪里不同,,可以将一个guoup中的所有数据按照一定顺序转变为一个整体,,然后做md5的值作为一个字段
还有没有其他的查询操作?