数据库表中包含版本号的名称列什么
我正在试图找出在我的数据库表中调用该列的内容,该列将INT保存到特定的“记录版本”。我目前正在使用“RecordOrder”,但我不喜欢这样,因为人们认为更高=更新,但我使用它的方式,更低=更新(“1”是当前记录,“2”是第二个最新的,“3”年龄仍旧,等等)。我考虑过“RecordVersion”,但我担心这会有同样的问题。还有其他建议吗? “RecordAge”?
我这样做是因为当我插入表格时,而不是必须找出下一个版本,然后冒着在我写之前从我这个号码被盗的风险,我只是插入带有“RecordOrder”0的插入桌面上有一个触发器AFTER INSERT将该键的所有“RecordOrder”数字增加1,所以我刚插入的记录变为“1”,其他所有记录增加1.这样,你就可以得到一个人的选择RecordOrder = 1的当前记录,而不是获取MAX(RecordOrder)然后选择它。
PS - 我也批评为什么这是一个可怕的想法,我应该增加这个指数。这似乎使查找更容易,但如果这是一个坏主意,请赐教!
有关数据的一些细节,例如:
我有以下数据库表:
CREATE TABLE AmountDue (
CustomerNumber INT,
AmountDue DECIMAL(14,2),
RecordOrder SMALLINT,
RecordCreated DATETIME
)
我的数据子集如下所示:
CustomerNumber Amountdue RecordOrder RecordCreated
100 0 1 2009-12-19 05:10:10.123
100 10.05 2 2009-12-15 06:12:10.123
100 100.00 3 2009-12-14 14:19:10.123
101 5.00 1 2009-11-14 05:16:10.123
在这个例子中,客户100有三行 - 他们欠100美元,然后是10.05美元,现在他们欠什么。如果我需要澄清它,请告诉我。
更新:
“RecordOrder”和“RecordCreated”列不可供用户使用 - 它们仅供内部使用,并帮助确定哪些是当前客户记录。此外,我可以使用它来返回适当订购的客户历史记录,尽管我可以轻松地使用日期。我想,我可以完成与仅使用RecordCreated日期的递增“记录版本”相同的事情,但是这消除了知道RecordOrder = 1是当前记录的便利性,并且我回到了进行子查询DateTime上的MAX或MIN确定最近的记录。
没有找到相关结果
已邀请:
6 个回复
良阑纠苫
字段进行版本控制,每次都会增加。然后当我想找到最新的记录时,我在查询中
并仅选择第一行。 编辑:我没有看到iandisme刚刚指出的datawarehousing标签。如果选择所有版本都不起作用,我会看到一些系统保留一个单独的表,只存储另一个表中每个记录的最新版本。因此,当新版本添加到
表时,相应的
记录会更新以存储该新版本。这对我工作的东西来说一直都是过度的,但我不会在整个数据仓库上工作,所以我不知道这会更好还是更糟。
期差骇蓟
珊畴炮贩号
会给你最新的记录,你不必担心记录修改。 您可能会因记录重新编号方法(索引争用,锁定升级等)而导致各种问题。 锁定升级:http://msdn.microsoft.com/en-us/library/aa213033(SQL.80).aspx 索引争用:http://blogs.digineer.com/blogs/jasons/archive/2009/02/25/monitoring-index-contention-with-dmfs.aspx 正如其他人在数据仓库方面提到的那样,您可以始终在数据集的顶部放置视图或快照或类似内容,以便以您希望的格式提供数据(仅限最新记录等)。显然我不熟悉哪些约束或要求足以知道view / snapshot / etc。在你的情况下有意义。
犁攀富
勘掸府迫路
括宠