我遇到过一个OLTP数据库,其中所有表都有一个默认行,主键值为0,其他列有默认值或空值。我不知道为什么这行需要在第一个位置?任何人都可以解释有第0行的优点和缺点。
答案 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声誉我把它作为答案发布了。