从以下三个表,问题就出现完整性约束 -强制闭环外键约束
Tour
- Id
TourPackage
- Id
- TourId
Traveller
- Id
- TourId
- PackageId
外键约束到位。不过,我也希望执行该旅行者套餐也必须参考旅行者所提及的相同旅行。
Traveller.Tour = Traveller.Package.Tour
我可能能够轻松地在业务层上强制执行此操作,但是可以在数据库中执行此操作吗?还是应该重新考虑我的设计?请注意,我不打算在新的关系表中提取外键。我认为Tour和Package是Traveler实体的一部分,因此应该驻留在实体本身中。
UPDATE
我的应用程序的单一旅游的上下文中运行。因此,我加载的所有数据都会指向单个游览。此外,大部分数据来自Traveler表。所以,有一个直接TourId到桌上是有道理的。无论如何,我以这种方式来看待关系。
- 一个旅游有几个包。
- 一位旅行者参加旅行。
- 旅行者为订购的旅程选择包裹。
所以,我猜旅游者和旅行者之间的关系是合理的。我错了吗?
首先将TourId存储在旅行者中有什么好处? – ryanbwork 2013-03-07 19:58:10
@ryanbwork - 请看看最新的问题。 – 2013-03-07 20:05:42