// This is your Prisma schema file, // learn more about it in the docs: https://pris.ly/d/prisma-schema generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") relationMode = "prisma" } // 系统用户表 model SysUser { id Int @id @default(autoincrement()) /// 主键id name String? /// 用户姓名 account String @unique /// 账户 password String /// 密码 passwordSalt String @map("password_salt") /// 密码盐 status Int @default(0) @db.SmallInt /// 用户状态 avatarId Int? @map("avatar_id") /// 用户头像id avatar Files? @relation(fields: [avatarId], references: [id]) gender Int @default(0) @db.SmallInt /// 用户性别 0:女 1:男 2:未知 createdAt DateTime @default(now()) @map("created_at") /// 创建时间 updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间 userRole SysUserRole[] @@index([avatarId]) @@map("sys_user") } // 系统角色表 model SysRole { id Int @id @default(autoincrement()) code String @unique name String status Int @default(0) @db.SmallInt /// 角色状态 sysRolePermission SysRolePermission[] sysUserRole SysUserRole[] @@map("sys_role") } // 用户角色关联表 model SysUserRole { id Int @id @default(autoincrement()) userId Int @map("user_id") roleId Int @map("role_id") user SysUser @relation(fields: [userId], references: [id], onDelete: Cascade) role SysRole @relation(fields: [roleId], references: [id], onDelete: Cascade) @@index([userId]) @@index([roleId]) @@map("sys_user_role") } // 文件表 model Files { id Int @id @default(autoincrement()) name String /// 文件名称 path String createdAt DateTime @default(now()) @map("created_at") /// 创建时间 sysUser SysUser[] @@map("files") } // 权限表 model SysPermission { id Int @id @default(autoincrement()) type Int sysRolePermission SysRolePermission[] sysMenuPermission SysMenuPermission[] @@map("sys_permission") } // 系统菜单表 model SysMenu { id Int @id @default(autoincrement()) name String url String parentId Int @default(0) @map("parent_id") sort Int @default(0) sysMenuPermission SysMenuPermission[] @@map("sys_menu") } // 菜单权限关联表 model SysMenuPermission { id Int @id @default(autoincrement()) menuId Int @map("menu_id") permissionId Int @map("permission_id") menu SysMenu @relation(fields: [menuId], references: [id], onDelete: Cascade) permission SysPermission @relation(fields: [permissionId], references: [id], onDelete: Cascade) @@index([menuId]) @@index([permissionId]) @@map("sys_menu_permission") } // 角色权限关联表 model SysRolePermission { id Int @id @default(autoincrement()) roleId Int @map("role_id") permissionId Int @map("permission_id") role SysRole @relation(fields: [roleId], references: [id], onDelete: Cascade) permission SysPermission @relation(fields: [permissionId], references: [id], onDelete: Cascade) @@index([roleId]) @@index([permissionId]) @@map("sys_role_permission") } // 系统配置 model SysConfig { key String @unique value String remark String? @@map("sys_config") }