38 Zeilen
		
	
	
		
			1.7 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			38 Zeilen
		
	
	
		
			1.7 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| CREATE TABLE page(id INTEGER PRIMARY KEY, name varchar(256), title varchar(1024), lastrevision integer, listed integer DEFAULT 1, parent integer REFERENCES page(id), feedlisted integer DEFAULT 1);
 | |
| CREATE TABLE user(id INTEGER PRIMARY KEY,username varchar(64), 
 | |
| password blob, salt blob, permissions integer, enabled integer DEFAULT 1);
 | |
| CREATE TABLE session(id INTEGER PRIMARY KEY, csrf_token varchar(32), 
 | |
| creationtime date, userid integer , token varchar(32));
 | |
| CREATE TABLE permissions(id INTEGER PRIMARY KEY, permissions integer, 
 | |
| userid integer REFERENCES user(id), page integer REFERENCES page(id ) );
 | |
| CREATE TABLE revision
 | |
| (
 | |
| 
 | |
| id INTEGER PRIMARY KEY, 
 | |
| author integer REFERENCES user(id), 
 | |
| comment text, 
 | |
| content text, 
 | |
| creationtime date, 
 | |
| page integer REFERENCES page(id ),
 | |
| revisionid integer
 | |
| );
 | |
| CREATE TABLE loginattempt
 | |
| (
 | |
| id INTEGER PRIMARY KEY,
 | |
| ip varchar(16),
 | |
| count integer
 | |
| );
 | |
| CREATE TABLE category(id INTEGER PRIMARY KEY, name varchar(255));
 | |
| CREATE TABLE categorymember(id INTEGER PRIMARY KEY, category REFERENCES category(id), page REFERENCES page (id));
 | |
| CREATE INDEX revisionid ON revision (revisionid DESC);
 | |
| CREATE INDEX pagename ON page (name);
 | |
| CREATE INDEX token ON session (token);
 | |
| CREATE VIRTUAL TABLE search USING fts5(content, page UNINDEXED, content=revision,content_rowid=id);
 | |
| CREATE TRIGGER search_ad AFTER DELETE ON revision BEGIN
 | |
|   INSERT INTO search(search, rowid, content, page) VALUES('delete', old.id, old.content, old.page);
 | |
| END;
 | |
| CREATE TRIGGER search_ai AFTER INSERT ON revision BEGIN
 | |
|   INSERT INTO search(search, rowid, content, page) SELECT 'delete', id, content, page FROM revision WHERE page = new.page AND revisionid = new.revisionid - 1; 
 | |
|   INSERT INTO search(rowid, content, page) VALUES (new.id, new.content, new.page);
 | |
| END;
 |