OLTP表的Zeroth行

时间:2015-06-18 08:28:30

标签: sql sql-server sql-server-2008 sql-server-2012

我遇到过一个OLTP数据库,其中所有表都有一个默认行,主键值为0,其他列有默认值或空值。我不知道为什么这行需要在第一个位置?任何人都可以解释有第0行的优点和缺点。

1 个答案:

答案 0 :(得分:2)

第0行与业务规则或规范有关。例如,您有一个数据仓库,您正在为客户加载数据,而且您的客户没有提供任何国家/地区名称,那么您可能需要向他提供一个默认值(可能是任何东西,在您的情况下,它是零)。请考虑以下示例

CREATE TABLE #TestTable  (
                PrimaryKeyColumn INT NOT NULL ,
                CONSTRAINT PK_PKC PRIMARY KEY CLUSTERED (PrimaryKeyColumn),
                CountryName varchar(100))

INSERT INTO #TestTable VALUES (0,'No Country Found'),(1,'USA'),(2,'Canada')


SELECT * FROM #TestTable

DROP TABLE #TestTable

我设计了一个数据仓库,我为不同的默认情况保留了值1,2,3,4,5。我们这样做的原因是因为无论数据是否正确,但仍然很重要。就像客户案例一样,我们不了解他的国家,但我们担心他处理的订单。

尽管如此,我应该发表评论,但由于< 50声誉我把它作为答案发布了。