我附上了旧数据库的简单图。
在这种设计中
- 有两个表Ť和P由表TP表示之间的多对多的关系。
- 的关系表TP有一个一对多与表d关系现在
,没有在规定的一些变化,即牛逼本身也有很多(d)秒。
如何在除旧(TP到d)使这些新的外键条件表d。
我的意思是,是否有可能链接T. [ID]到D. [T]除了链接TP。[T,P]到D. [T,P]?
如何解决我的新要求?
我附上了旧数据库的简单图。
在这种设计中
,没有在规定的一些变化,即牛逼本身也有很多(d)秒。
如何在除旧(TP到d)使这些新的外键条件表d。
我的意思是,是否有可能链接T. [ID]到D. [T]除了链接TP。[T,P]到D. [T,P]?
如何解决我的新要求?
是的,您可以将表T中的外键引用放入表D中。它将是表T与表TP之间的一对多关系。
我不明白你为什么想要表D中的表T的FK引用。目前,您可以加入T到TP到D,以获得表D中与表T中的行相关的行。
看起来这很简单。只需添加一个新的列到D连接到T.请注意,如果我有这个权利,则来自D [T,P]的T可能不同于来自D的T. [T]
我通过以下方式解决了这个问题:
现在,
如果新行插入d表,以便P成分值设置为NULL ,则只是约束吨至d将被检查。
如果新行都有它的P组件设置为从NULL,延迟值,那么这两个约束吨至d和目标价至d将被检查。
如果我只是将T添加到D关系。然后,向D插入新行可能会将TP切换为D状态。这是错的吗? – Lio
@Lio - 是的,这是正确的,但是这也会破坏你的数据库表设计,以及如果你要添加T到D的关系。如果你在D中放置一个新的行,你会打破目前的TP到D的关系,并与我建议的额外的FK关系。 – GWines
如果我只是让D [P]为空,你觉得怎么样?这有道理吗? 我在说,因为sql-sever似乎正在接受它。 我现在很困惑。 – Lio