【发布时间】:2013-10-21 21:08:23
【问题描述】:
甚至不知道如何搜索这样的东西,但例如:
First Table:
Id, Date, Maximum records
Second Table:
Id, Date, more properties
是否可以在服务器端定义一些规则,如果第二个表有太多相同日期的记录并且超过了第一个表的当前日期的最大记录值,那么服务器会抛出一个错误还是某种异常会阻止对该日期的 sql 插入查询?
可能:
First Table:
1,Date1,2
Second Table:(Maximum 2 on Date 1)
1,Date3,...
2,Date1,...
3,Date1,...
不可能:
First Table:
1,Date1,2
Second Table:(Maximum 2 on Date 1)
1,Date3,...
2,Date1,...
3,Date1,...
4,Date1,...
如果无法做到这一点,那么在具有实体框架的 Windows 窗体应用程序上实现此类检查的最佳方法是什么?
【问题讨论】:
-
您也许可以使用
Trigger来拒绝插入。 This question 有一个可能的 MySQL 解决方案。类似的东西可能适用于 SQL-Server -
这对于数据库设计来说似乎是一个奇怪的要求。你在做什么导致你有这个要求?
-
@ScottChamberlain 我一次会有很多正在运行的应用程序,它们会检查当前的数据库表。如果其中许多应用程序中的某个人想要在最后一个剩余位置(特定日期)插入一条记录,我希望服务器验证不是客户端应用程序验证,因为可能存在超时等等。跨度>
-
@M.J.这是一个很容易解决的常见问题,根本不需要使用单独的表。所有这些都可以通过服务器上的事务和存储过程来完成。不要陷入XY Problem 我建议提出一个新问题并解释您正在尝试做什么以及您面临的挑战(例如让服务器验证而不是客户端)并提出问题“How do我解决了这个问题?”而不是“我如何实施这个解决方案(针对一个我没有告诉你的问题)?”
-
@ScottChamberlain 好的,感谢您的解释,我本可以创建这个问题而不是这个问题。 :)
标签: sql sql-server entity-framework