2012-01-25 37 views
0

嗨,我是编程和数据库工作中的新手。我有与外键有关的问题。用表设置外键

我在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 

现在我想要一个更Cloumn在CallDetaiuls表的PageId其中CallId的时间应该是PageDetails持续时间之间。像,CallId 1具有PageId 1,CallId 2具有PageId 1,CallId3具有PageId 3.

我知道我可以通过给外键给CallDetails表做这件事但是我怎样才能给上述条件分配外键? ?

回答

1

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

* CHECK约束(在你的情况没有用处) http://msdn.microsoft.com/en-us/library/ms188258.aspx

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

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

+0

谢谢,我得到了我的答案我执行我的条件在插入声明....它的工作,并获得正确的pageID。但我仍然在寻找合适的答案,以便您的链接对我有帮助,谢谢 – Hiren