Tsql sql表中的父子关系
我在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
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有什么想法吗?