【问题标题】:Creating Custom/Generic Rules创建自定义/通用规则
【发布时间】:2014-07-15 11:36:53
【问题描述】:

我想创建一个通用规则,用户可以在其中创建任何规则并且它是适用的,我们根据数据库中的规则获取信息。 假设我们有一个主表,其中的列很少,例如

如果使用通过选择任何列创建任何规则,我们现在从 pin 码中获取一个信息,那么我们的 mysql 规则将起作用..

【问题讨论】:

  • 您能否提供更多有关您具体要做什么的详细信息?
  • 好的......我有一个主表,其中有一些字段我只有密码,从那个密码我得到用户的详细信息,比如城市、地区和国家这对于选择查询很简单,但问题是当我授予我的用户访问权限时,我的用户根据那里的规则创建规则,所有逻辑都将起作用
  • 我不明白 MySQL 中的“规则”是什么意思。您的用户使用什么界面?如果是网页,是什么语言?请在表格结构上发布一些具体的内容,例如SQLFiddle,并展示用户实际在做什么
  • 查看“规则”标签的工具提示:Rule might refer to various things: business rules, JUnit rules, a rule of thumb, rules engines ... 请定义您所指的内容
  • 我正在询问有关该问题的更多信息。你应该可以在这里提供。如果没有,您希望我们如何回答?

标签: mysql database asterisk rule


【解决方案1】:

你可以这样做拨号方案:

[default]
exten => _.,1,AGI(agi://127.0.0.1:4893/fastagi_handler?dst=${EXTEN})

并通过 fastagi 控制所有拨号方案。

或者你可以这样做

[default]
switch=>realtime

之后通过实时数据库控制拨号方案。

第一个变体通常是较少的数据库负载。

或者您可以在拨号方案中执行所有逻辑,只需从数据库中选择一些内容:

[realtime_get]
exten => _.,1,Set(dialplan_type=${REALTIME_FIELD(mytable,did,${EXTEN},dialplan_type)})
exten => _.,2,Goto(${dialplan_type},${EXTEN},1)
[dialplan-check-pin]
exten => _.,1,Set(recording=${REALTIME_FIELD(mytable,did,${EXTEN},recording)})
exten => _.,2,Read(pin,${recording},3);
exten => _.,3,GotoIF($[ ${LEN(pin)} < 3 ]?hangup)
exten => _.,n,Set(pin_db=${REALTIME_FIELD(mytable,did,${EXTEN},pin)})
exten => _.,n,GotIf($[ ${pin_db} == ${pin}]?ok:bad
exten => _.,n(ok),Playback(thankyou)
exten => _.,n,Hangup
exten => _.,n(bad),Playback(bad-pin)
exten => _.,n(hangup),Hangup

【讨论】:

  • Hey Arheops 感谢您的代码,但我的要求与此代码略有不同,好的,我告诉您我到底想要什么
  • 伙计们,我有一个与查询逻辑相关的查询请建议我
  • 这个答案涵盖了你的情况。如果您不知道如何操作,您可能需要专家帮助或更准确的问题。