相关疑难解决方法(0)

当其中一个值的类型不同时,在复合键中使用的最佳类型

我正在为已抓取的多个博客站点的内容构建数据存储。这些站点中的每一个都将在Blog表中包含一个条目

BlogId                  Url                         Version
int, PK, identity       varchar(2500), not null     int, not null
-----------------       -----------------------     -------------
                1       'http://site1.com/                      1
                2       'http://site2.com/                      1
                3       'http://site2.com/                      2
Run Code Online (Sandbox Code Playgroud)

然后会有一张Post表:

BlogId                Url                        PostId
int, FK, not null     varchar(2500) not null     ?
Run Code Online (Sandbox Code Playgroud)

对于我正在查看的大多数博客,我可以轻松辨别出 PostId对它们来说独一无二价值。

对于所有博客,Url将是唯一的BlogId值。但是,Url经常可能发生变化

但是,有一些博客PostId在抓取 HTML 时我无法辨别出很好的价值。在这些情况下,我可以得到datetimeoffset发布帖子的信息。发布频率的准确性在分钟级别。

问题是,我需要使用BlogIdPostId但我不确定我应该输入什么PostId。我一直在想两个选择:

  • sql_variant- 我可以int对我的大多数网站使用 an ,这很好,然后datetimeoffset用于那些我无法轻易辨别唯一数字的网站PostId
  • bigint …

sql-server-2008 database-design sql-server unique-constraint

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