CREATE TABLE "Entity" ( "Id" int, "Name" varchar(255), "TypeId" int CONSTRAINT EntityType_Id REFERENCES EntityType(Id) ); CREATE TABLE "State" ( "Id" int, "Name" varchar(255), "EntityTypeId" int CONSTRAINT EntityType_Id REFERENCES EntityType(Id) ); CREATE TABLE "EntityType" ( "Id" int PRIMARY KEY, "Name" varchar(255) ); CREATE TABLE "StartState" ( "StateId" int PRIMARY KEY CONSTRAINT State_Id REFERENCES State(Id) ); CREATE TABLE "DecisionState" ( "StateId" int PRIMARY KEY CONSTRAINT State_Id REFERENCES State(Id), "TrueStateId" int CONSTRAINT State_Id REFERENCES State(Id), "FalseStateId" int CONSTRAINT State_Id REFERENCES State(Id), "DecisionExpression" varchar(255) ); CREATE TABLE "SimpleState" ( "StateId" int PRIMARY KEY CONSTRAINT State_Id REFERENCES State(Id), "NextStateId" int CONSTRAINT State_Id REFERENCES State(Id) ); CREATE TABLE "LifePath" ( "Id" int PRIMARY KEY, "EntityId" int CONSTRAINT Entity_Id REFERENCES Entity(Id), "StateId" int CONSTRAINT State_Id REFERENCES State(Id), "ParentStateId" int CONSTRAINT LifePath_Id REFERENCES LifePath(Id) );