日期:2014-05-20  浏览次数:20409 次

要显示这样的数据怎么设置数据结构更趋于合理?
××盆地分层数据
    组名             代号         好1井(合并)好2井(同左)   好3井             好4井           ……  
(合并)     (合并)       深度     厚度       深度     厚度     深度     厚度       深度     厚度   ……
    ×1组           c1               100       90           200       195       150       140         120       108     ……
    ×2组           c2               150       50           280       80         200       50           300       180     ……
    ×3组           c3               300       150         400       120       300       100         350       50       ……
……
盆地不同组名的个数不同,即:不同的盆地具有不同的行数,组名的顺序不能变
可以分页显示数据,如每页只显示5口井的数据,相同盆地显示的组名相同

------解决方案--------------------

------解决方案--------------------
看不太明白。所以没法给个更好的答案

但大致上同意第3组,

数据库里只要数据全面,尽量少冗余就好了。

所谓的显示,其实只是前台实现。数据库里数据啥样子无所谓。

也可以适当的增加一个表或者字段,来存放组。。和具体的对应关系。。

我是在看不太明白。嘿~
------解决方案--------------------
这总逻辑关系,只能自己来解决,大家只可以给你提供点方案.
LZ 加油
------解决方案--------------------
以井为最小单元
然后分表

------解决方案--------------------
没经验 只能帮顶
------解决方案--------------------
不太能够理解,不过我觉得最好是分表设计。
盆地基础表;井的基础表;他们的对应表;
这样的话你说的问题就可以解决,而且没有你设计的弊端,增加一个盆地不需要增加一张表的
------解决方案--------------------
井的序号不变只需要在井的表里面增加一个顺序字段就可以了
------解决方案--------------------
这个应该是叫交叉表查询,
以前我的例子
Create table cost_table (日期 datetime,交费类别 char(2), 金额
numeric(10,2))
insert into cost_table select '2003-1-1 ', 'S ',23.4
union all select '2003-2-3 ', 'P ',43
union all select '2003-5-1 ', 'T ',23


go

declare @sql varchar(8000)
select @sql= 'select M as 月份 '
select @sql=@sql+ ',sum(case 交费类别 when ' ' '+交费类别+ ' ' ' then 金额 else 0
end) as [ '+ 交费类别+ '费] '
from (select distinct 交费类别 from cost_table) as a
select @sql=@sql + ' from
(select 1 as m
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9
union all select 10
union all select 11
union all select 12
) A left join cost_table B
on A.m=month(日期)
and year(日期)=2003
group by A.M '


exec (@sql)

go