我在网络界面上的整个仓库中有销售,库存和付款的管理应用程序。特别是,当订单被验证时,它必须创建对应于与相应数量一起订购的每个产品的线。库存可用性的验证在订单时刻完成。
考虑以下两种验证方式:
1)使用触发器" BEFORE ... ON INSERT"在OrderLine表上,如果存在足够的库存,则在产品上进行SELECT验证。
2)执行SELECT ... FROM OrderLine JOIN产品WHERE quant
我的问题是,这两种选择中的每一种都更有可能出现在哪种情况?为什么?
由于
答案 0 :(得分:2)
你可能想要(不成文)的第三个选项。
即使您在应用程序层中执行此操作,您仍然需要在单个事务中执行所有检查和提交,可能在单个可序列化事务中。
根据您的应用程序,可序列化的事务可能不适合您。一些在线供应商接受订单而不保证他们有足够的库存来填补它。之后,您可能会收到一封电子邮件,说明已经延期交货。 (请记住一些事情。)