17 lines
563 B
MySQL
17 lines
563 B
MySQL
|
CREATE TABLE emoji (
|
||
|
id UUID PRIMARY KEY,
|
||
|
emoji_name VARCHAR(100) NOT NULL,
|
||
|
hostname VARCHAR(100) REFERENCES instance (hostname) ON DELETE RESTRICT,
|
||
|
image JSONB NOT NULL,
|
||
|
object_id VARCHAR(250) UNIQUE,
|
||
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL,
|
||
|
UNIQUE (emoji_name, hostname),
|
||
|
CHECK ((hostname IS NULL) = (object_id IS NULL))
|
||
|
);
|
||
|
|
||
|
CREATE TABLE post_emoji (
|
||
|
post_id UUID NOT NULL REFERENCES post (id) ON DELETE CASCADE,
|
||
|
emoji_id UUID NOT NULL REFERENCES emoji (id) ON DELETE CASCADE,
|
||
|
PRIMARY KEY (post_id, emoji_id)
|
||
|
);
|