如何实现数据库驱动的if-else语句?

时间:2014-04-12 07:47:45

标签: database django if-statement django-models conditional-statements

我现在的编程任务是在数据库中实现if-elif-else构造,以便用户可以轻松地编写条件语句。

在条件块中,用户选择条件运算符,函数调用,设置参数并检查返回值 - 组成一系列条件测试。

在执行块中,用户应该能够选择函数调用并设置参数 - 组成一系列函数调用。

我可以使用文本字段,编写解析器并使用eval(),但这不是一个选项:

  1. 安全
  2. 非常麻烦(或者你知道一个好的包裹吗?)
  3. 用户不需要编程知识。
  4. 要明确:再次执行该任务,并且我想要映射到数据库的示例条件语句:

    问题:创建" if-elsif-else构造"这是数据库驱动的,易于点击并且运行良好。

    1. 条件语句映射到数据库。我想留在Django ORM
    2. 最大化性能:数据库不应该充斥着对象,因此性能合理。如果我有100k个不同的条件语句,我不希望平均每个都有超过10个对象。越少越好。
    3. 最大化可能的复杂性:条件语句的类型和数量应该类似于书面条件语句的可能复杂性。
    4. 最小化难度:构造的使用应该易于掌握。条件语句应该很容易编写。用户不需要编程知识,但具有基本的(人类)逻辑理解。
    5. 
      if something(p1, p2, px, ret) and someotherthing(p1, p2, px, ret):
          dothis(p1, p2, px)
          thendothat(p1, p2, px)
      elif somethought(p1, p2, px, ret) or someotherthougt(p1, p2, px, ret) and acrazythought(p1, p2, px, ret):
          thinkthis(p1, p2, px)
          thenthinkthat(p1, p2, px)
          finallyconclude(p1, p2, px)
      else:
          sayinaudiblethings(p1, p2, px)
          donothing(p1, p2, px)
      

      子任务:

      1. 数据库模型(Django ORM)
      2. 通用视图,模板和表单处理
      3. 如果你没有任何问题 - 这是一个很好的解决方案 - 请分享!

        我目前正在研究解决方案并最终发布。

0 个答案:

没有答案