-- P4b Task 2:展示位域(embed_slots/embed_slot_members)。 -- 校对手决:Prisma 生成 DDL 固定 utf8mb4_unicode_ci,逐表改写为库级约定的 -- utf8mb4_0900_bin(publicToken 的大小写敏感唯一语义依赖它,同 albums 口径)。 -- · embed_slots 双版本位:configVersion(嵌入端可见配置版本,任一管理面 -- 变更递增)/entityVersion(slot.updated 同步事件版本);无删除端点, -- enabled=false 即下线。settings 为归一化 EmbedSlotSettings 全集 JSON。 -- · embed_slot_members:授权成员表**建而未用**(P4b 权限简化 admin-only, -- 登记偏差;P5 授权面按需启用)。 -- · 两表均扁平字符串外键(albumId/userId/slotId 无 FK 约束,同相册域约定)。 -- CreateTable CREATE TABLE `embed_slots` ( `id` VARCHAR(191) NOT NULL, `publicToken` VARCHAR(32) NOT NULL, `name` VARCHAR(64) NOT NULL, `enabled` BOOLEAN NOT NULL DEFAULT true, `albumId` VARCHAR(64) NULL, `configVersion` INTEGER NOT NULL DEFAULT 1, `settings` JSON NOT NULL, `entityVersion` INTEGER NOT NULL DEFAULT 1, `createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `updatedAt` DATETIME(6) NOT NULL, UNIQUE INDEX `embed_slots_publicToken_key`(`publicToken`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin; -- CreateTable CREATE TABLE `embed_slot_members` ( `id` VARCHAR(191) NOT NULL, `slotId` VARCHAR(64) NOT NULL, `userId` VARCHAR(64) NOT NULL, `permission` VARCHAR(32) NOT NULL, `createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), INDEX `embed_slot_members_userId_idx`(`userId`), UNIQUE INDEX `embed_slot_members_slotId_userId_key`(`slotId`, `userId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;