问题列表 - 第6633页

数据库中的历史行管理

与许多数据库一样,我正在设计一个数据库,该数据库应记录每个表中更改的行的先前版本.

此问题的标准解决方案是为每个数据表保留历史表,并且每当需要在数据表中更新行时,当前行的副本将插入到历史表中而不是数据表中的行得到更新.

这个解决方案的缺点对我来说:

  • 维护2个表而不是1个(如果表的结构需要更改)
  • 应用程序需要知道两个表而不是一个
  • 表的名称可能需要很短,以保持表名和历史表名的约定(例如,SOME_TABLE,SOME_TABLE_HIST)

我正在考虑一个不同的解决方案,并想知道它是否正常.对于每个表,我们添加列IS_LAST

  • 当一行插入到表中时,它将插入IS_LAST = 1.
  • 当一行更新时,原始行的副本将复制到同一个表中,并且IS_LAST = 0的更改,并且原始行将根据需要进行更新(仍保持IS_LAST = 1).

假设在我的情况下,行平均更新10次.还假设应用程序执行的操作中至少有90%仅在最新版本的行上发生.

我的数据库是一个Oracle 10g,所以为了使"活动"表保持苗条,我们可以将表拆分为2个分区:IS_LAST = 1分区和IS_LAST = 0分区.

分区是解决历史数据保持问题的好方法吗?

此解决方案是否限制了这些表的其他分区潜力?

谢谢!

database oracle database-design partitioning

9
推荐指数
2
解决办法
4436
查看次数

Ruby:将转义字符串写入YAML

下列...

require 'yaml'
test = "I'm a b&d string"
File.open('test.yaml', 'w') do |out|
  out.write(test.to_yaml)
end
Run Code Online (Sandbox Code Playgroud)

......输出......

--- this is a b&d string
Run Code Online (Sandbox Code Playgroud)

我怎样才能输出它

--- 'this is a b&d string'
Run Code Online (Sandbox Code Playgroud)

???

ruby string yaml escaping

7
推荐指数
2
解决办法
2万
查看次数

TSQL:使用 With 语句更新值?

我有一个表,其中有一列我想更新其值。下面是 TSQL 代码的示例:

WITH Pieces(id, newdesc) AS
(
SELECT itemid, REPLACE(REPLACE(description, 'DESC_A', 'DESC_B'), 'NEW_1', 'NEW_2')
  FROM myTable
  WHERE description like '%DESC_A%DESC_B%'
)
-- SELECT * FROM Pieces
UPDATE myTable SET description = newdesc // not working, how?
Run Code Online (Sandbox Code Playgroud)

此更新不起作用。通过注释掉 SELECT,我可以看到结果就是我需要的。如何以批量方式对一组行进行此更改?不确定可以通过WITH语句实现吗?

以下是一些示例数据:

....
xxxDESC_AyyyDESC_Bwwww
aaaDESC_AxxDESC_Beee
....
Run Code Online (Sandbox Code Playgroud)

更新的将是:

....
xxxNEW_1yyyNEW_2wwww
aaaNEW_1xxNEW_2eee
....
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2005

4
推荐指数
1
解决办法
1万
查看次数

打印字符串的位表示

如何打印字符串的位表示

std::string = "\x80";

void print (std::string &s) {

    //How to implement this
}
Run Code Online (Sandbox Code Playgroud)

c++ printing bit

0
推荐指数
1
解决办法
2989
查看次数

bitrot有任何可接受的尺寸吗?

每个现代源控制系统都可以对程序的历史进行切片和切块.有许多工具可以静态和动态地分析代码.什么样的数学公式可以让我将文件中的活动量与该软件的部署数量相结合?我们发现,即使一个程序完成了所有的单元测试,它也需要比升级时更多的工作.这种类型的措施应该是可能的,但坐下来考虑甚至其单位让我难过.

更新:如果有东西被发送到测试机器,我可以看到标记它不那么烂.如果有东西被发送到所有测试盒,我可以看到它得到一个新的标记.如果有什么东西可以投入生产,我可以给它一个点头并减少它的bitrot得分.如果它的文件中有很多活动,并且它永远不会被发送到任何地方,我会把它丢弃.假设我需要的任何数据都在手边,请不要专注于代码.

什么样的提交分析(提交注释(如下所述)或提交之间的时间)是适用的公平数据?

更新: 我认为尺寸分析可能只是基于年龄.相对于那更难一点.旧代码很烂.每行代码的平均年龄仍然只是时间的度量.更大的源模块是否比更小,更复杂的源模块更快?

更新代码覆盖率以行为单位.根据定义,执行的代码通常必须比从未执行的代码更少腐烂.要准确测量bitrot,您需要进行覆盖率分析以充当阻尼器.

version-control metrics

7
推荐指数
1
解决办法
520
查看次数

HTML电子邮件是什么样的?

我正在尝试自动构建HTML电子邮件,并试图弄清楚是否有标准和电子邮件工作中的哪些属性以及哪些必须存在.我需要一个吗?如果没有必要有一个身体?我是否需要指定我正在使用的Doctype?

我在他们的示例中使用Zend Framework他们没有设置任何东西,但内容与"样式"代码http://framework.zend.com/manual/de/zend.mail.html-mails.html

所以你知道为什么我需要HTML.这看起来很愚蠢,但我们公司正在编写支持软件和一个关键的"错误"或功能请求,所有的beta测试人员都是基本的HTML,因此他们可以通过使重量单词变胖,斜体,下划线等突出显示重要单词.

email coding-style web-standards html-email

7
推荐指数
1
解决办法
2472
查看次数

如何使用Emacs Tramp双跳ssh?

我的校园只允许通过网关服务器进行ssh访问.因此,为了访问我正在编码的集群,我必须ssh到网关,然后ssh到我正在处理的机器上.这种联系有时非常缓慢,令人沮丧.

我很乐意使用像tramp这样的东西,我知道它会在我的本地机器上打开缓冲区,并且当我保存到磁盘时只能通过网络进行通信.我对tramp并不是很熟悉,并且努力让它工作,特别是通过双跳.文档说这是通过在tramp中定义代理来完成的,但我无法理解语法.

有没有人知道如何使用emacs通过双跃点进行编码或有一个替代的解决方法来通过两个ssh跳来编辑代码?

emacs ssh tramp

30
推荐指数
3
解决办法
7120
查看次数

如何在VS2005中使用.NET 3.0?

我试图在VS2005中使用自动实现的属性.我在我的机器上加载了.NET 3.0框架,但Visual Studio仍在使用.NET 2.0进行编译.如何告诉它使用.NET 3.0?

visual-studio-2005 automatic-properties c#-3.0

0
推荐指数
1
解决办法
277
查看次数

你怎么让sudo保存密码?

你如何设置它,以便sudo不会每次都提示你输入密码?我有根.

linux sudo

1
推荐指数
1
解决办法
6251
查看次数

Unicode First,Previous,Next和Last

Unicode有雪人和棋子.它是否有第一个(<<或| <),前一个(<),下一个(>)和最后一个(>>或> |)符号?这些对于文章之间的网站导航等非常有用.

unicode

15
推荐指数
4
解决办法
1万
查看次数