关于一个数据库设计(E-R)的问题(我的论文作业)

要实现以下功能:
游客到旅行社登记旅游订单,后台调度人员根据需要分配团队。
在我的数据库分析中,有游客、团队、旅游产品、导游几个主要的实体,实际数据库中存在表有:
1。游客信息表:存放游客信息
2。散客表:存放订单,包括游客ID号、所选旅游产品号等字段,还有一个团队编号,初始为NULL
3。团队表:存放团队编号、旅游产品号、导游工号等
4。旅游产品表:存放旅游产品号等
5。导游表
这样,团队表和旅游产品表、导游表建立了联系,游客信息表和散客表建立了联系,散客表和团队表建立了联系,而散客表和旅游产品表也建立了联系。按照这种联系建立了外键和主键。现在的问题是:散客表和团队表是用团队编号建立联系的,而两个表都有旅游产品号,按照规范化的理论来说似乎有冗余,可是仔细想想,都不能省略,因此有这样一个约束,当散客表和团队编号不为NULL时(即已经分配了团队),该记录的旅游产品号必然等于团队表中该团队编号所对应的旅游产品号,这样的约束该如何实现?
[475 byte] By [chdonald-可爱的糖老鸭] at [2008-2-13]