用于树状结构的SQL定义表

时间:2012-10-15 01:40:32

标签: sql

在Visual Studio的早期版本中,有一种使用图表构建数据库的方法。

2012年,他们开始考虑这种可能性。

我需要创建为类别树创建表的脚本。

    CREATE TABLE [dbo].[Categories]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY, 
    [Name] NVARCHAR(50) NOT NULL, 
    [ParentId] INT NOT NULL DEFAULT 0, 
    [FK_Parent] int FOREIGN KEY ([ParentId]) REFERENCES [Categories]([Id]) NOT NULL
)

如果我像这样创建表格,我就无法添加顶级记录。

1 个答案:

答案 0 :(得分:0)

将顶级记录定义为NULL FK_Parent。只需更改您的定义以允许空值。

CREATE TABLE [dbo].[Categories]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY, 
    [Name] NVARCHAR(50) NOT NULL, 
    [ParentId] INT NOT NULL ,
    ---llow NULL FK_Parent for top-level
    CONSTRAINT [FK_Parent] FOREIGN KEY ([ParentId]) REFERENCES [Categories]([Id])
)