我有三个表:Parent_table,Child_table和child_of_child_table。
我有三个参议员。
例如: 如果有人在父表中将ABC的名称更改为DEF。然后它将在parent_table,child_table和child_of_child _table中创建新版本的数据。
我不希望该重复的条目进入数据库。谁能帮助我创建数据库结构?
答案 0 :(得分:0)
为什么要使用多重表?您只需要一个。 ID,Parent_ID,姓名
这可能是您需要的深度。
问题是您想如何食用它?
这是我通常的做法:
CREATE FUNCTION [dbo].[group_hierarchy]( @pGroupID AS INTEGER)
RETURNS @Groups TABLE( ItemID INTEGER NOT NULL
,NestedLevel INTEGER NOT NULL )
AS BEGIN
DECLARE
@lNestedLevel INTEGER;
SET @lNestedLevel = 0;
IF( @pGroupID IS NULL ) RETURN;
ELSE
BEGIN
INSERT INTO @Groups
SELECT @pGroupID, 1
WHERE EXISTS (
SELECT NULL
FROM Group
WHERE Group_ID = @pGroupID );
END;-->IF<--
WHILE( @@ROWCOUNT <> 0 )
BEGIN
SET @lNestedLevel = @lNestedLevel + 1;
INSERT INTO @Groups
SELECT Group_ID, ( @lNestedLevel + 1)
FROM Group
WHERE ParentGroup_ID IN (
SELECT ItemID
FROM @Groups
WHERE NestedLevel = @lNestedLevel );
END;-->WHILE<--
RETURN;
END