首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建多表"identity“列(faux identity)

创建多表"identity“列(faux identity)
EN

Database Administration用户
提问于 2014-11-05 15:50:27
回答 1查看 219关注 0票数 0

我目前正在设计一个作业执行引擎,并遇到了一个问题,我正在寻找一些建议。

我正在将一些进程转换为一个新的系统,需要定义表结构。该过程由3个步骤组成,每个步骤包含不同的数据(3个不同的webservice调用)。当前,使用RowID和同一行中所有三个步骤的数据生成一个平面文件。新的设计是针对每个流程直接从表中提取,每个步骤都有自己的表,每个步骤只需要数据字段。

问题是,需要链接表之间的行,以便在步骤1成功完成后,我们可以使用适当的数据对步骤2进行操作。由于没有任何step数据保证是唯一的(通过业务规则),所以我需要有一个ID来将表链接到一起。基本表格结构如下:

代码语言:javascript
复制
CREATE TABLE Step1
(
BatchID INT,
BatchRowID ???,
ProcessData
)

CREATE TABLE Step2
(
BatchID INT,
BatchRowID ???,
ProcessData
)

CREATE TABLE History
(
BatchID INT,
BatchRowID ???,
StepID INT,
Result BIT --True False flag
)

我正在寻找一个解决方案,以创建一个人造多表标识列。因此,使用步骤4的Process2将有用于Process1的BatchRowID的空白。想到的第一件事是使用GUID,但是由于表上的集群PK将是BatchID,BatchRowID,我想尽量避免GUID。这是由于多种原因,1)集群GUID导致插入失败(但是,通过包含BatchID稍微克服了这一点),以及2)基表和添加到表中的每个索引中在INT上使用的额外空间。

如果有人提出了类似的建议,我很想听听你们的解决方案。

目前还没有确定主机服务器,因此SQL版本可以是2008或2012年。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-11-05 19:34:59

如果版本至少为2012年,请使用序列

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/81955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档