![]() |
1
31
执行数据完整性的最佳位置是数据库。请放心,有些开发人员,不管是有意还是无意,都会找到一种方法,如果您允许的话,可以将不一致的东西偷偷地添加到数据库中! 下面是带有检查约束的示例:
以下是新数据完整性检查的一些测试:
以下是表定义:
|
![]() |
2
2
问题1很容易。把你的轮班表直接交给活动志愿者,你就准备好了。 |
![]() |
3
1
我要做的是在eventsvolunteid表上有一个标识列,它会自动递增,在eventid和volunteid对上有一个唯一的约束。使用eventvolunteid(标识)作为班次表的外键。这将强制您非常简单地使用您想要的约束,同时稍微规范化您的数据。 我知道这不是你一般问题的答案,但我认为这是解决你具体问题的最佳方案。 编辑: 我本该把这个问题读清楚的。这个解决方案将阻止一个志愿者在同一个活动中做两个轮班,即使他们没有重叠。也许将轮班开始和结束时间移动到事件志愿者,并在该表上对时间进行检查限制就足够了,尽管这样,轮班表之外的轮班数据听起来并不直观。 |
![]() |
4
-4
有一种方法可以通过使用触发器来实现,我不建议这样做。我建议不要将您的业务逻辑放在数据库级别。数据库不需要知道谁,在某个时间安排了一个班次。这个逻辑应该放在您的业务层中。我建议使用存储库构建模式。ScottGutherie在他的MVC1.0书中有一个非常好的章节描述了这一点(链接如下)。 http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 7 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 8 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 8 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 8 月前 |