Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql sql表中的父子关系_Tsql_Database Design_Parent Child - Fatal编程技术网

Tsql sql表中的父子关系

Tsql sql表中的父子关系,tsql,database-design,parent-child,Tsql,Database Design,Parent Child,我在SQL中有一个表 PID int Season int Markup decimal(9,2) Name nvarchar(50) Price decimal(9,2) Notice nvarchar(255) 由于给定的PID有一个包含附加信息的FK,我希望有一个新的PID可以“复制/覆盖”现有PID,因此我可以同时使用这两个PID。基本上,我最终得到了父母/孩子的解决方案 解决方案1 PID Season Markup Name Price N

我在SQL中有一个表

PID int
Season int
Markup decimal(9,2)
Name nvarchar(50)
Price decimal(9,2)
Notice nvarchar(255)
由于给定的PID有一个包含附加信息的FK,我希望有一个新的PID可以“复制/覆盖”现有PID,因此我可以同时使用这两个PID。基本上,我最终得到了父母/孩子的解决方案

解决方案1

PID     Season     Markup      Name     Price     Notice     ParentPID
1       2014       0.1         test1    10        notice1    1
2       2014       0.2         test2    10        notice2    1
通过这种方式,我可以在PID计算中保持一致性,但现在我的PK将是parentPID而不是PID,以连接包含相关信息的其他表。PID将只是一个标识列


这是解决这个问题的唯一办法吗

你到底有什么问题?请注意,主键必须是唯一的,这意味着父PID不能是主键。@Vulcronos您不了解什么部分?您只列出了一个表。外键通常涉及多个表。您还列出了要执行的操作,PID是一个标识列,等等,然后询问这是否是解决问题的唯一方法。我只是不确定您面临的问题和需要解决的问题。@vulcronos问题1)父PID不能是父键,因为我希望搜索返回table1.*(包含PID=1和PID=2的行),并且我希望将它们与其他表连接(必须在父PID上连接!)@vulcronos有什么想法吗?