不同产线,统一的明细数据表结构如何建立?

jaffy 2011-04-28 01:52:05
最近在搞一个工厂的统一生产管理系统,涉及到了产线明细数据的采集上,现在的问题是,这个工厂有多个制造部门,每个部门的产品线都不一样,生产制造以及测试流程都不一样,如何合理统一来建立表结构呢?
我最初的想法是统一建立一个纵表,根据内部ID,区分不同的测试生产指标,但后期调研,发现数据量太大,测试量与环境关联很大,温度,湿度,升温,降温都需要测试记录,不同输入,不同衰减下都要测试,这种组合型指标太多了。

另外,数据量的风险感觉也很大,现在他们单个产品就有百万级以上的测试记录,如果转成纵表,并且是多个部门集合的话,我估计最终测试数据这个表的数量级可能到亿了,自己从没有操作过这种数量级的表,特别不知道这对今后数据提取会不会带来效率的严重影响?

但如果根据不同部门建立横表,不利于统计分析,他们的QC还希望可以查看指标变化趋势,提前预判机器的失效风险;另外则是我们自己的原因,由于需要单独收集各个部门的需求,这为后期维护带来了风险(我们不太愿意陷入到具体每一类用户需求中去)。
...全文
280 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitao 2011-05-19
  • 打赏
  • 举报
回复
属性很多(任意组合的结果),不好用列,而是用行
建一个 key-value 表
我们的产线测试结果就是这样存的

快一年了,5千万条记录,内存大点+分区表,基本不会有什么慢的感觉


【做了一个 数据字典工具
exe+doc:(说明非常简单,招募理解和表达能力好的人士帮着写说明)
http://www.vdisk.cn/down/index/7828869A4369】
  • 打赏
  • 举报
回复
这个工厂有多个制造部门,每个部门的产品线都不一样,生产制造以及测试流程都不一样,如何合理统一来建立表结构呢?

你既然都说数据量会很大,为什么还要统一放在一个表中。放在一个表中的后果会怎么样?恐怕不单纯是数据量的问题,在以后对数据的查询等,并发等可能都回产生问题的。建议还是分成若干表来存放
fancy0109 2011-05-19
  • 打赏
  • 举报
回复
你去问微软吧!
jaffy 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sz_haitao 的回复:]
分区表就是sql2000/2005支持

属性名直接使用文字好了
多维的用长字符串应该也可以吧,如果不需要单独查询的话。。。。。。。
[/Quote]
分区表的含义:
http://msdn.microsoft.com/zh-cn/library/ms345146(SQL.90).aspx
感觉头大。这个没有技术积累,暂时不敢用。

haitao 2011-05-19
  • 打赏
  • 举报
回复
分区表就是sql2000/2005支持

属性名直接使用文字好了
多维的用长字符串应该也可以吧,如果不需要单独查询的话。。。。。。。
jaffy 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sz_haitao 的回复:]
属性很多(任意组合的结果),不好用列,而是用行
建一个 key-value 表
我们的产线测试结果就是这样存的

快一年了,5千万条记录,内存大点+分区表,基本不会有什么慢的感觉

[/Quote]
我也觉得用行来表示比较好,但属性很多也很头疼,我必须为每种独特属性编码,并且支持编码解析。
而且有的数据是2维的,比如:某个输入功率常温下的输出谱线,这种我现在的想法是外连接到另一个表上去。

我很感兴趣你说的分区表,具体指的是什么啊?
一品梅 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ssp2009 的回复:]
引用 1 楼 ssp2009 的回复:
帮顶。
怕一楼被删,引用一次。
[/Quote]
机器人没你的速度快。
jaffy 2011-05-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 herowang 的回复:]
这个工厂有多个制造部门,每个部门的产品线都不一样,生产制造以及测试流程都不一样,如何合理统一来建立表结构呢?

你既然都说数据量会很大,为什么还要统一放在一个表中。放在一个表中的后果会怎么样?恐怕不单纯是数据量的问题,在以后对数据的查询等,并发等可能都回产生问题的。建议还是分成若干表来存放
[/Quote]
如果放在一个表中,等于我需要为每个表单独写应用。还必须结合每个部门的具体需求进行后期维护;
这个风险太大。况且我们人力有限,不可能这样投入进去。
jaffy 2011-05-16
  • 打赏
  • 举报
回复
纵表如果数量级上亿,到底操作速度上有感觉吗?
SQLSERVER 2005的库
xuyuchends 2011-05-12
  • 打赏
  • 举报
回复
这叫什么表?开放架构表? 有个字段保存str1,str2,str3.。。。之类的字段。
xuyuchends 2011-05-12
  • 打赏
  • 举报
回复
1楼已经被删
janegujun 2011-05-11
  • 打赏
  • 举报
回复
产品线、产品指标作为两个独立的对象,各自统一建表,产品线和产品指标靠多对多关系表相关联。多对多关系表太大,可以在上面再套一层部门,把他拆开来。
jaffy 2011-05-10
  • 打赏
  • 举报
回复
好吧,现在回到最初的问题:
对于需求不一致的产品线,是单独建表好,还是统一建表好?
注意:生产线之间是可能会有交互的。
xuam 2011-05-10
  • 打赏
  • 举报
回复
果然删了,哈哈!!!!!!!!!!!!!!!!!!!!!!
[Quote=引用 2 楼 ssp2009 的回复:]
引用 1 楼 ssp2009 的回复:
帮顶。
怕一楼被删,引用一次。
[/Quote]
fancy0109 2011-05-10
  • 打赏
  • 举报
回复
1、如果你的数据项需要详细的描述,你需要得到它们的属性\行为\功能及互相之间的关系,抽象出分析项的模型;
2、首先分析需求,再想法实现,我认为这个问题不涉及到读写速度问题,至少现在是这样的。
3、描述清楚自己的问题,干啥都需要动手,你说呢?
jaffy 2011-05-07
  • 打赏
  • 举报
回复
一个表有1024个列应该够了;也许是够了,可温度,湿度,电压,电流这样的排列组合是无穷的,另外这1024个字段怎么能应付的了所有的情况呢?
况且,我觉得1024个字段的表,自己维护都很成问题,打开的速度还不知道怎么样?

fancy0109 2011-04-28
  • 打赏
  • 举报
回复
1、我认为可以分成两层,数据存储在一个表中,一个表有1024个列应该够了;
2、数据存储表可以有两个:A,部门相关状态;B、相关明细数据;
3、数据存储表的字段类似变量(横表),是所有部门明细数据项的最小并集;
4、建立管理部门和对应数据项的关系表(纵表),查询的时候通过这个表来确定sql语句,然后再执行;

大致思路,抽象部门接口,然后实现不同的部门,这样就可以是统一管理模式及入口;

表1:
部门 分析项 数据类型 长度 精度 描述
A a1 字符 10 0 测试
A a2 字符 10 0 测试
A a3 字符 10 0 测试
A c1 字符 10 0 测试
A c2 字符 10 0 测试
B b1 字符 10 0 测试
B b2 字符 10 0 测试
B b3 字符 10 0 测试
B c1 字符 10 0 测试
B c2 字符 10 0 测试

表2:
id 部门 状态1 状态2


表3:
id a1 a2 a3 b1 b2 b3 c1 c2

查询部门A
declare @sql varchar(1000)
set @sql = ''
select @sql = @sql + 分析项 + ', ' from 表1 where 部门 = 'A'
set @sql = 'select ' + left(@sql, len(@sql) - 1) + ' from 表3'
--表3需要表2连接

快溜 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ssp2009 的回复:]
帮顶。
[/Quote]怕一楼被删,引用一次。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧