Skip to content

Instantly share code, notes, and snippets.

@balasista
Last active March 23, 2023 06:37
Show Gist options
  • Save balasista/6ee77a69c9e337f86aadf8751293a43a to your computer and use it in GitHub Desktop.
Save balasista/6ee77a69c9e337f86aadf8751293a43a to your computer and use it in GitHub Desktop.
bpmn-dmn
CREATE TABLE process_definition (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
version INTEGER NOT NULL,
process_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX unique_name_version ON process_definition (name, version);
CREATE TABLE decision_table (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
version INTEGER NOT NULL,
table_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX unique_name_version ON decision_table (name, version);
CREATE TABLE process_decision_table (
process_definition_id INTEGER NOT NULL REFERENCES process_definition (id),
decision_table_id INTEGER NOT NULL REFERENCES decision_table (id),
PRIMARY KEY (process_definition_id, decision_table_id)
);
CREATE TABLE task (
id SERIAL PRIMARY KEY,
process_definition_id INTEGER NOT NULL REFERENCES process_definition (id),
name VARCHAR(255) NOT NULL,
task_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX unique_process_task ON task (process_definition_id, name);
CREATE TABLE sequence_flow (
id SERIAL PRIMARY KEY,
process_definition_id INTEGER NOT NULL REFERENCES process_definition (id),
name VARCHAR(255),
source_ref VARCHAR(255) NOT NULL,
target_ref VARCHAR(255) NOT NULL,
condition_expression TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX unique_process_source_target ON sequence_flow (process_definition_id, source_ref, target_ref);
CREATE TABLE decision_table (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
version INT NOT NULL,
table_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY unique_name_version (name, version)
);
CREATE TABLE decision_requirements_diagram (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
version INT NOT NULL,
diagram_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY unique_name_version (name, version)
);
CREATE TABLE decision_logic (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
version INT NOT NULL,
logic_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY unique_name_version (name, version)
);
CREATE TABLE input_output_mapping (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
version INT NOT NULL,
mapping_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY unique_name_version (name, version)
);
CREATE TABLE decision_input (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
version INT NOT NULL,
input_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY unique_name_version (name, version)
);
CREATE TABLE decision_output (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
version INT NOT NULL,
output_xml TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY unique_name_version (name, version)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment