Storing Business Logic in Database

后端 未结 11 1544
感情败类
感情败类 2021-01-30 00:04

We want to write some business logic rules that work on top of certain data to build reports. Not sure which is the best to store them in the database MySQL.

11条回答
  •  無奈伤痛
    2021-01-30 00:14

    Model

    CREATE TABLE businessRule (
      id INT NOT NULL ,
      name VARCHAR(32) NOT NULL ,
      description VARCHAR(255) NULL ,
      statement VARCHAR(255) NOT NULL ,
      PRIMARY KEY (id) )
    ENGINE = InnoDB;
    
    CREATE TABLE leftOperand (
      id INT NOT NULL ,
      value VARCHAR(255) NOT NULL ,
      PRIMARY KEY (id) )
    ENGINE = InnoDB;
    
    CREATE TABLE ruleItem (
      id INT NOT NULL ,
      businessRuleId INT NOT NULL ,
      operator ENUM('if','and','or','not') NOT NULL ,
      loperand INT NOT NULL ,
      comparator ENUM('<','=','>') NOT NULL ,
      roperand VARCHAR(255) NOT NULL ,
      roperand_ispercentage TINYINT(1)  NOT NULL ,
      PRIMARY KEY (id) ,
      INDEX businessRule_FK (businessRuleId ASC) ,
      INDEX leftOperand_FK (loperand ASC) ,
      CONSTRAINT businessRule_FK
        FOREIGN KEY (businessRuleId )
        REFERENCES mydb.businessRule (id )
        ON DELETE CASCADE
        ON UPDATE RESTRICT,
      CONSTRAINT leftOperand_FK
        FOREIGN KEY (loperand )
        REFERENCES mydb.leftOperand (id )
        ON DELETE RESTRICT
        ON UPDATE RESTRICT)
    ENGINE = InnoDB;
    

提交回复
热议问题