触发器在业务数据处理中的应用
2014-08-07 16:55
141 查看
从ampla系统读取大量的数据,储存在SQL Server数据库表TrainingData中:
表TrainingData
因为业务的需要,我们需要建立一个“元数据”表Variables,用以检索表中数据。需要amplaLocation,productType,.testItem三个字段组合成为一个key,这个key我把它定义为“检验项”。检验项即是表TrainingData这三个字段的所有可能的组合,这些信息被储存在表Variables,就构成了元数据表。
虽然名为元数据表,但表Variables中的数据是没法预制的。因为TrainingData的数据是不定时地读取自别的数据库系统,是不断在变化的,而表Variables的数据是需要跟随着TrainingData的数据变化在变化,实际上,前者是后者的一个动态的检索目录一样。
当然不是完全没法预制。既然是业务上的数据,当然可以把amplaLocation,productType,.testItem的所有组合都预先储存在表Variables不就解决了吗?是的,而且amplaLocation,productType,.testItem这三个字段的值,肯定也是可枚举,且不会经常变化的。但是这里需要考虑的是,如此一来,表Variables就需要人来维护,就算我们已有的软件模块可以满足使得用户在前台维护此表,但对于用户来说,也是一个不小的工作量,而且如果一旦用户维护表中数据有错误,作为元数据表(这里表达的意思是,在程序中会使用此表,检索数据),那么对我们程序的影响也是颇大的。
所以,自然地就使用触发器,表TrainingData的数据发生变化,自动更新表Variables。之前只模糊地知道触发器的作用,但从未使用过。
触发器脚本:
(8月10日)但是,这个由触发器里面语句所插入数据的表Variables要由用户维护进去一些其他数据。所以,上面触发器里面的sql语句,DELETE是不对的。它删除所有之前的数据,包括用户自己维护到此表的数据。如何处理这种情况呢?
表TrainingData
因为业务的需要,我们需要建立一个“元数据”表Variables,用以检索表中数据。需要amplaLocation,productType,.testItem三个字段组合成为一个key,这个key我把它定义为“检验项”。检验项即是表TrainingData这三个字段的所有可能的组合,这些信息被储存在表Variables,就构成了元数据表。
虽然名为元数据表,但表Variables中的数据是没法预制的。因为TrainingData的数据是不定时地读取自别的数据库系统,是不断在变化的,而表Variables的数据是需要跟随着TrainingData的数据变化在变化,实际上,前者是后者的一个动态的检索目录一样。
当然不是完全没法预制。既然是业务上的数据,当然可以把amplaLocation,productType,.testItem的所有组合都预先储存在表Variables不就解决了吗?是的,而且amplaLocation,productType,.testItem这三个字段的值,肯定也是可枚举,且不会经常变化的。但是这里需要考虑的是,如此一来,表Variables就需要人来维护,就算我们已有的软件模块可以满足使得用户在前台维护此表,但对于用户来说,也是一个不小的工作量,而且如果一旦用户维护表中数据有错误,作为元数据表(这里表达的意思是,在程序中会使用此表,检索数据),那么对我们程序的影响也是颇大的。
所以,自然地就使用触发器,表TrainingData的数据发生变化,自动更新表Variables。之前只模糊地知道触发器的作用,但从未使用过。
触发器脚本:
ALTER TRIGGER updateVariables ON TrainingData AFTER INSERT AS DELETE FROM Variables INSERT INTO Variables(Variables.amplaLocation,Variables.productType,Variables.testItem) SELECT DISTINCT TrainingData.amplaLocation,TrainingData.productName,TrainingData.testItem FROM TrainingData GO
(8月10日)但是,这个由触发器里面语句所插入数据的表Variables要由用户维护进去一些其他数据。所以,上面触发器里面的sql语句,DELETE是不对的。它删除所有之前的数据,包括用户自己维护到此表的数据。如何处理这种情况呢?
相关文章推荐
- 触发器应用场景一: 根据业务逻辑限制某些操作__触发器应用场景二: 校验数据
- 应用ajax处理级联的数据
- 设计自己的应用开发框架三(数据操作与业务实体)
- android 系统上做GC双模的---数据业务的处理分析
- chukwa在数据收集处理方面的应用
- 纯Java应用来处理Excel数据表
- Web Service在电信行业数据业务中的应用
- BackgroundWorker在AE后台数据处理中的应用
- 范围分区在数据过期化处理中的应用
- 基于文件数据库的规则引擎处理海量高复杂度数据(一,业务背景)
- 互联网百万级应用的大数据处理问题
- 27.3 数据签名处理——基于CAPICOM的应用
- SQL2005以上版本数据库级触发器的应用
- ENVI在处理美国EOS卫星MODIS数据中的应用
- 离线应用——业务数据同步方案探讨
- 应用消息队列异步处理数据存储
- Android中构建数据业务应用
- Android中构建数据业务应用
- 范围分区在数据过期化处理中的应用
- 雅昌数据系统及应用系统构建方案---之二:非结构化数据处理与备份系统