首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库中存储用户定义的逻辑。

在数据库中存储用户定义的逻辑。
EN

Stack Overflow用户
提问于 2015-11-18 08:47:07
回答 1查看 66关注 0票数 0

我正在设计一个数据库来存储有关动态事件的信息。我的意思是,每种类型的事件都会附加一些变量,根据用户定义的一些规则对每一次事件进行更改。

假设我们有变量X和Y的事件类型A,在这个事件类型中,用户可以定义一些规则来确定事件每次发生时X和Y的值。

用户可能定义的一组规则的示例:

  • 第一次出现时,X= 0;Y= 0;
  • 每次发生,X=X+ 1;
  • 在每次发生时,如果X == 100,则{X= 0;Y=Y+1}

通过定义这些规则,X和Y的值在所有事件发生时都会发生动态变化,如下所示:

  • 第一次发生:X= 1,Y=0
  • 第二次发生:X= 2,Y=0
  • ..。
  • 第100次发生:X= 0,Y=1

现在,我不知道如何将“用户定义的规则”存储在数据库中,然后在我的代码中查询它们。谁能给我指明正确的方向?以下是一个开始:

代码语言:javascript
复制
EVENTS
id;
name;
description;
event_type;

EVENT_TYPE_A_OCCURRENCES
id;
event_id;
X;
Y;

EVENT_RULES
id;
event_id;
frequency; // the frequency in which this rule applies
at_occurrence; // apply this rule at a specific occurrence
condition; // stores the code for the condition
statements; // stores the code for the statements

我不是专家,请帮我解决这个问题。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 09:39:36

假设以下用户定义的规则存储在表中:

代码语言:javascript
复制
-----------------------------------------------------------------
|eventid|occurance|keep-old-x|keep-old-y|x-frequency|y-frequency|
-----------------------------------------------------------------
| A     | 1       | T        | F        | 1         | 100       |
-----------------------------------------------------------------
| B     | 2       | F        | T        | -2        | 0         |
-----------------------------------------------------------------
| C     | 5       | T        | T        | 100       | -3        |
-----------------------------------------------------------------

假设在事件x= 10,Y= 12。事件= A,频率= 1,保持老-x= T,保持老-y= F,x-频率= 1,y-频率= 100。

代码语言:javascript
复制
if keep-old-x is T then
        X = X + x-frequency
else
        X = x-frequency
endif

if keep-old-y is T then
        Y = Y + y-frequency
else
        Y = y-frequency
endif

现在,X= 11,Y= 100

您可能需要再添加两个列来更改特定值上的X变量的值;如:

代码语言:javascript
复制
--------------------------
|if-x-value| x-new-value |
--------------------------
| 100      | 0           |
--------------------------
| 125      | 5           |
--------------------------
| 150      | 10          |
--------------------------

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33775364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档