Files
FruitServer/sql/migrate-k105-anonymous-interactions.sql

58 lines
2.1 KiB
SQL

-- 非付费互动支持 deviceId 归属;登录时由应用事务合并到账号。
ALTER TABLE content_like
ADD COLUMN IF NOT EXISTS device_id VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE content_like
ALTER COLUMN user_id DROP NOT NULL;
DROP INDEX IF EXISTS uk_content_like;
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_like_user
ON content_like (user_id, target_type, target_id)
WHERE user_id IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_like_device
ON content_like (device_id, target_type, target_id)
WHERE user_id IS NULL AND device_id <> '';
CREATE INDEX IF NOT EXISTS idx_content_like_device
ON content_like (device_id, created_at DESC)
WHERE device_id <> '';
ALTER TABLE user_favorite
ADD COLUMN IF NOT EXISTS device_id VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE user_favorite
ALTER COLUMN user_id DROP NOT NULL;
DROP INDEX IF EXISTS uk_user_favorite;
CREATE UNIQUE INDEX IF NOT EXISTS uk_user_favorite_user
ON user_favorite (user_id, drama_id)
WHERE user_id IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uk_user_favorite_device
ON user_favorite (device_id, drama_id)
WHERE user_id IS NULL AND device_id <> '';
CREATE INDEX IF NOT EXISTS idx_user_favorite_device
ON user_favorite (device_id, created_at DESC)
WHERE device_id <> '';
ALTER TABLE content_comment
ADD COLUMN IF NOT EXISTS device_id VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE content_comment
ALTER COLUMN user_id DROP NOT NULL;
CREATE INDEX IF NOT EXISTS idx_comment_device
ON content_comment (device_id, created_at DESC)
WHERE user_id IS NULL AND device_id <> '';
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_comment_user_content
ON content_comment (
user_id,
drama_id,
episode_id,
parent_id,
md5(content)
)
WHERE user_id IS NOT NULL AND deleted = 0 AND status <> 'deleted';
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_comment_device_content
ON content_comment (
device_id,
drama_id,
episode_id,
parent_id,
md5(content)
)
WHERE user_id IS NULL AND device_id <> '' AND deleted = 0 AND status <> 'deleted';