使用表设置外键

时间:2012-01-25 18:21:37

标签: sql-server-2008

嗨,我是编程和数据库工作的新手。我对外键有疑问。

我在sql server 2008中有两个表.CallDetails,PageDetails。

例如 PageDetails表。

    PageId PageLoadTime PageUnloadTime
       1      12:00PM         1:00PM
       2      1:00PM          2:00PM
       3      2:00PM          3:00PM

CallDetails表

    CallId CallStartTime CallEndTime
      1       12:05PM       12:10PM
      2       12:15PM       12:25PM
      3       02:35PM       02:40PM

现在我想在CallDetaiuls表中再增加一个Cloumn作为PageId,其中CallId时间应该在PageDetails持续时间之间。比如,CallId 1有PageId 1,CallId 2有PageId 1,CallId3有PageId 3.

我知道我可以通过将外键提供给CallDetails表来实现这一点但是我如何给出上述条件来分配外键????

1 个答案:

答案 0 :(得分:1)

外键仅强制CallDetails中的PageId列中的值必须出现在PageDetails表中。对于您可以使用的所有其他逻辑,例如:

*检查约束(在您的情况下无用) http://msdn.microsoft.com/en-us/library/ms188258.aspx

* DML TRIGGERS(对于更复杂的逻辑,与来自另一个表的数据进行比较等) http://msdn.microsoft.com/en-us/library/ms189799.aspx *你自己的应用逻辑。

在这种情况下,我会使用触发器。如果你在应用程序方面有另一个逻辑,也可以。

相关问题