Add tags for schedules
This commit is contained in:
		
							parent
							
								
									f3f3d36eed
								
							
						
					
					
						commit
						75f8afd624
					
				
					 10 changed files with 375 additions and 184 deletions
				
			
		| 
						 | 
				
			
			@ -1,126 +1,164 @@
 | 
			
		|||
CREATE TABLE controllers
 | 
			
		||||
(
 | 
			
		||||
    id      INTEGER
 | 
			
		||||
            PRIMARY KEY
 | 
			
		||||
            AUTOINCREMENT
 | 
			
		||||
            NOT NULL,
 | 
			
		||||
    uid     VARCHAR(36)
 | 
			
		||||
            NOT NULL
 | 
			
		||||
            UNIQUE,
 | 
			
		||||
    name        VARCHAR(128),
 | 
			
		||||
    ip          VARCHAR(16),
 | 
			
		||||
    port        INTEGER,
 | 
			
		||||
    relay_count INTEGER,
 | 
			
		||||
    active      BOOLEAN
 | 
			
		||||
                NOT NULL
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    uid
 | 
			
		||||
        VARCHAR(36)
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        UNIQUE,
 | 
			
		||||
    name
 | 
			
		||||
        VARCHAR(128)
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    ip
 | 
			
		||||
        VARCHAR(16),
 | 
			
		||||
    port
 | 
			
		||||
        INTEGER,
 | 
			
		||||
    relay_count
 | 
			
		||||
        INTEGER,
 | 
			
		||||
    active
 | 
			
		||||
        BOOLEAN
 | 
			
		||||
        NOT NULL
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE relays
 | 
			
		||||
(
 | 
			
		||||
    id              INTEGER
 | 
			
		||||
                    PRIMARY KEY
 | 
			
		||||
                    AUTOINCREMENT
 | 
			
		||||
                    NOT NULL,
 | 
			
		||||
    name            VARCHAR(128),
 | 
			
		||||
    number          INTEGER
 | 
			
		||||
                    NOT NULL,
 | 
			
		||||
    controller_id   INTEGER
 | 
			
		||||
                    NOT NULL
 | 
			
		||||
                    REFERENCES controllers (id)
 | 
			
		||||
                    ON DELETE CASCADE
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    name
 | 
			
		||||
        VARCHAR(128)
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    number
 | 
			
		||||
        INTEGER
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    controller_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        REFERENCES controllers (id)
 | 
			
		||||
            ON DELETE CASCADE
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE schedules
 | 
			
		||||
(
 | 
			
		||||
    id      INTEGER
 | 
			
		||||
            PRIMARY KEY
 | 
			
		||||
            AUTOINCREMENT
 | 
			
		||||
            NOT NULL,
 | 
			
		||||
    uid     BLOB
 | 
			
		||||
            NOT NULL
 | 
			
		||||
            UNIQUE,
 | 
			
		||||
    name    VARCHAR(128)
 | 
			
		||||
            NOT NULL,
 | 
			
		||||
    periods BLOB
 | 
			
		||||
            NOT NULL
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    uid
 | 
			
		||||
        BLOB
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        UNIQUE,
 | 
			
		||||
    name
 | 
			
		||||
        VARCHAR(128)
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    periods
 | 
			
		||||
        BLOB
 | 
			
		||||
        NOT NULL
 | 
			
		||||
);
 | 
			
		||||
INSERT INTO schedules (uid, name, periods) VALUES (x'00', 'off', x'');
 | 
			
		||||
INSERT INTO schedules (uid, name, periods) VALUES (x'01',  'on', x'00000000');
 | 
			
		||||
 | 
			
		||||
CREATE TABLE tags
 | 
			
		||||
(
 | 
			
		||||
    id      INTEGER
 | 
			
		||||
            PRIMARY KEY
 | 
			
		||||
            AUTOINCREMENT
 | 
			
		||||
            NOT NULL,
 | 
			
		||||
    tag     VARCHAR(128)
 | 
			
		||||
            NOT NULL
 | 
			
		||||
            UNIQUE
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    tag
 | 
			
		||||
        VARCHAR(128)
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        UNIQUE
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE junction_tag
 | 
			
		||||
(
 | 
			
		||||
    id          INTEGER
 | 
			
		||||
                PRIMARY KEY
 | 
			
		||||
                AUTOINCREMENT
 | 
			
		||||
                NOT NULL,
 | 
			
		||||
    tag_id      INTEGER
 | 
			
		||||
                NOT NULL
 | 
			
		||||
                REFERENCES tags (id)
 | 
			
		||||
                ON DELETE CASCADE,
 | 
			
		||||
    relay_id    INTEGER
 | 
			
		||||
                REFERENCES relays (id)
 | 
			
		||||
                ON DELETE CASCADE,
 | 
			
		||||
    schedule_id INTEGER
 | 
			
		||||
                REFERENCES schedules (id)
 | 
			
		||||
                ON DELETE CASCADE
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    tag_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        REFERENCES tags (id)
 | 
			
		||||
            ON DELETE CASCADE,
 | 
			
		||||
    relay_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        REFERENCES relays (id)
 | 
			
		||||
            ON DELETE CASCADE,
 | 
			
		||||
    schedule_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        REFERENCES schedules (id)
 | 
			
		||||
            ON DELETE CASCADE
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE junction_relay_schedule
 | 
			
		||||
(
 | 
			
		||||
    id          INTEGER
 | 
			
		||||
                PRIMARY KEY
 | 
			
		||||
                AUTOINCREMENT
 | 
			
		||||
                NOT NULL,
 | 
			
		||||
    weekday     SMALLINT
 | 
			
		||||
                NOT NULL,
 | 
			
		||||
    relay_id    INTEGER
 | 
			
		||||
                REFERENCES relays (id)
 | 
			
		||||
                ON DELETE CASCADE,
 | 
			
		||||
    schedule_id INTEGER
 | 
			
		||||
                DEFAULT 1
 | 
			
		||||
                REFERENCES schedules (id)
 | 
			
		||||
                ON DELETE SET DEFAULT
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    weekday
 | 
			
		||||
        SMALLINT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    relay_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        REFERENCES relays (id)
 | 
			
		||||
            ON DELETE CASCADE,
 | 
			
		||||
    schedule_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        DEFAULT 1
 | 
			
		||||
        REFERENCES schedules (id)
 | 
			
		||||
            ON DELETE SET DEFAULT
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE macros
 | 
			
		||||
(
 | 
			
		||||
    id      INTEGER
 | 
			
		||||
            PRIMARY KEY
 | 
			
		||||
            AUTOINCREMENT
 | 
			
		||||
            NOT NULL,
 | 
			
		||||
    uid     VARCHAR(36)
 | 
			
		||||
            NOT NULL
 | 
			
		||||
            UNIQUE,
 | 
			
		||||
    name    VARCHAR(128)
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    uid
 | 
			
		||||
        VARCHAR(36)
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        UNIQUE,
 | 
			
		||||
    name
 | 
			
		||||
        VARCHAR(128)
 | 
			
		||||
        NOT NULL
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE macro_actions
 | 
			
		||||
(
 | 
			
		||||
    id          INTEGER
 | 
			
		||||
                PRIMARY KEY
 | 
			
		||||
                AUTOINCREMENT
 | 
			
		||||
                NOT NULL,
 | 
			
		||||
    macro_id    INTEGER
 | 
			
		||||
                NOT NULL
 | 
			
		||||
                REFERENCES macros (id)
 | 
			
		||||
                ON DELETE CASCADE,
 | 
			
		||||
    relay_id    INTEGER
 | 
			
		||||
                REFERENCES relays (id)
 | 
			
		||||
                ON DELETE CASCADE,
 | 
			
		||||
    schedule_id INTEGER
 | 
			
		||||
                REFERENCES schedules (id)
 | 
			
		||||
                ON DELETE CASCADE,
 | 
			
		||||
    weekday     SMALLINT
 | 
			
		||||
                NOT NULL
 | 
			
		||||
    id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        PRIMARY KEY
 | 
			
		||||
        AUTOINCREMENT
 | 
			
		||||
        NOT NULL,
 | 
			
		||||
    macro_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        REFERENCES macros (id)
 | 
			
		||||
            ON DELETE CASCADE,
 | 
			
		||||
    relay_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        REFERENCES relays (id)
 | 
			
		||||
            ON DELETE CASCADE,
 | 
			
		||||
    schedule_id
 | 
			
		||||
        INTEGER
 | 
			
		||||
        NOT NULL
 | 
			
		||||
        REFERENCES schedules (id)
 | 
			
		||||
            ON DELETE CASCADE,
 | 
			
		||||
    weekday
 | 
			
		||||
        SMALLINT
 | 
			
		||||
        NOT NULL
 | 
			
		||||
);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue