2017-05-26 110 views
0

我使用SQL Server 2012,我的表的名称是 “TableX的”,它已经COLOR_ID和有第二个表 “colortable1 [COLOR_ID]” =关键是COLOR_ID指向colortable1,SQL逻辑约束

现在我们有太多的颜色,我们必须存档其中的一些。 我们分裂colortable成2个色表:

colortable1(color_id is 1-100) 
colortable2 (color_id is 100-100000) 

分割的TableX不会找到IDS从colortable1 被拆除,经过和我需要以某种方式设置的逻辑:

if id is 1-100 then color_id is from colortable1 
if id is 100-100000 then color_id is from colortable2 

怎么能这样在SQL中完成?

+0

SQL-2011是ANSI SQL标准,没有SQL-2012标准。 – jarlh

+2

100,000行不是很大。您应该能够解决表分区或索引的性能问题,而不必诉诸使用单独的表。 –

+0

什么是您的SQL Server版本?是标准版还是企业版? –

回答

0

SQL语言不提供任何(良好)抽象和泛化。但是在处理大行时,RDBMS是非常好的(1M行绝对没问题)。

不用拆分不同表中的行,而是只使用一个表并在列中使用值(您可以创建额外的独特列)来解析记录。