2

例如,假设我正在创建一个存储运输站点促销代码的表。我想让表格与代码的验证器匹配促销代码,例如

PROMO1: Order must have 3 items
PROMO2: Order subtotal must be greater than $50

我想将查询和/或例程存储在表的列中,并且能够使用内容进行验证,在某种意义上

SELECT * FROM Orders 
WHERE Promo.ID = 2 AND Promo.Validation = True

或者类似的东西。有任何想法吗?

4

2 回答 2

2

我不会将查询保存在数据库中,还有更好的可能性。

您必须决定哪个最适合您的需求(根据您的问题,我不清楚)。您可以使用

意见

或者

准备好的报表

或者

存储过程

于 2012-06-30T22:10:22.620 回答
1

可能有更好的方法来解决这个问题,但你的问题的答案是编写返回你想要的结果的存储过程。在我工作的地方(我讨厌这种设计),它们实际上将应用程序使用的所有查询和 dml 存储在存储过程中。

您还可以使用动态 sql 动态构建查询。对于 MySql,请参阅下面的帖子,这可能对您有所帮助。

如何在 MySQL 存储过程中使用动态 SQL

否则,您还可以将查询以字符串格式存储在数据库中,并使用 EXECUTE 语句检索它们并执行它们,例如该帖子指出的。

不过,我个人会远离这样的设计。将查询存储在 XML 中并不是一个糟糕的选择,并且可以将您的应用程序编写为可从 XML 扩展和配置,因此您无需更改代码即可添加新的验证逻辑,而只需在 XML 中进行配置.

于 2012-06-30T23:23:58.343 回答