mirror of
https://github.com/Blah-IM/blahrs.git
synced 2025-05-01 00:31:09 +00:00
36 lines
1.3 KiB
SQL
36 lines
1.3 KiB
SQL
-- TODO: We are still in prototyping phase. Database migration is not
|
|
-- implemented and layout can change at any time.
|
|
|
|
CREATE TABLE IF NOT EXISTS `user` (
|
|
`uid` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
`userkey` BLOB NOT NULL UNIQUE,
|
|
`permission` INTEGER NOT NULL DEFAULT 0
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS `room` (
|
|
`rid` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
`ruuid` BLOB NOT NULL UNIQUE,
|
|
`title` TEXT NOT NULL,
|
|
`attrs` INTEGER NOT NULL
|
|
) STRICT;
|
|
|
|
CREATE TABLE IF NOT EXISTS `room_member` (
|
|
`rid` INTEGER NOT NULL REFERENCES `room` ON DELETE CASCADE,
|
|
`uid` INTEGER NOT NULL REFERENCES `user` ON DELETE RESTRICT,
|
|
`permission` INTEGER NOT NULL,
|
|
PRIMARY KEY (`rid`, `uid`)
|
|
) STRICT;
|
|
|
|
CREATE INDEX IF NOT EXISTS `member_room` ON `room_member` (`uid` ASC, `rid` ASC);
|
|
|
|
CREATE TABLE IF NOT EXISTS `room_item` (
|
|
`cid` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
`rid` INTEGER NOT NULL REFERENCES `room` ON DELETE CASCADE,
|
|
`uid` INTEGER NOT NULL REFERENCES `user` ON DELETE RESTRICT,
|
|
`timestamp` INTEGER NOT NULL,
|
|
`nonce` INTEGER NOT NULL,
|
|
`sig` BLOB NOT NULL,
|
|
`rich_text` TEXT NOT NULL
|
|
) STRICT;
|
|
|
|
CREATE INDEX IF NOT EXISTS `room_latest_item` ON `room_item` (`rid` ASC, `cid` DESC);
|