我试图建立一个比以前更多的数据库 - SQL并不是我的优势之一。
我有以下3个表格:
我试图应用3个约束但没有取得多大成功,可以提供一些帮助 - 我不确定我是应该使用触发器还是FK /约束/触发器的组合来实现我想要的。
ProductRate每个ProductID只能包含一次出现IsPrimary = true;
ProductDetail行应该只能定义具有相同ProductID的ProductRate;
“产品详细信息”组(由ProductID定义)应至少包含一次定义为主要费率的费用。
任何建议表示赞赏。
答案 0 :(得分:0)
以下是我将如何处理这个问题。
" ProductDetail行应该只能定义具有相同ProductID的ProductRate;" - 这很简单。您将ProductID设置为ProductDetail中的外键。
对于其他两个要求,我会对您的表结构稍作修改。我会在Product表中添加另一列,如PrimaryProductRateID。使该列不为null并具有ProductRate表的外键。这确保你只能拥有1,而且也是必需的。
我不建议使用类似的触发器。