Files
nestjs-admin/server/prisma/schema.prisma
2025-03-12 11:38:34 +08:00

147 lines
5.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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 String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
name String? /// 用户姓名
account String @unique /// 账户
password String /// 密码
passwordSalt String @map("password_salt") /// 密码盐
status Int @default(0) @db.SmallInt /// 用户状态
avatarId String? @map("avatar_id") /// 用户头像id
avatar File? @relation(fields: [avatarId], references: [id])
gender Int @default(0) @db.SmallInt /// 用户性别 0女 1男 2未知
userRole SysUserRole[]
@@index([avatarId])
@@map("sys_user")
}
// 系统角色表
model SysRole {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
code String @unique
name String
status Int @default(0) @db.SmallInt /// 角色状态
sysRolePermission SysRolePermission[]
sysUserRole SysUserRole[]
@@map("sys_role")
}
// 用户角色关联表
model SysUserRole {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
userId String @map("user_id")
roleId String @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 File {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
name String /// 文件名称
originName String @map("origin_name")
path String
size Int
width Int?
height Int?
sysUser SysUser[]
@@map("file")
}
// 权限表
model SysPermission {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
name String? @unique // 权限字符
sysRolePermission SysRolePermission[]
sysResourcePermission SysResourcePermission[]
@@map("sys_permission")
}
// 角色权限关联表
model SysRolePermission {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
roleId String @map("role_id")
permissionId String @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 SysResource {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
name String /// 菜单名称或者接口名称
path String? @unique() /// 菜单或api路径
permissionKey String? @unique() @map("permission_key") /// 权限字符
parentId String? @map("parent_id")
sort Int @default(0)
type Int /// 资源类型 0:菜单 1:api
sysResourcePermission SysResourcePermission[]
@@map("sys_resource")
}
// 系统资源权限表
model SysResourcePermission {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
resourceId String @map("resource_id")
resource SysResource @relation(fields: [resourceId], references: [id], onDelete: Cascade)
permissionId String @map("permission_id")
permission SysPermission @relation(fields: [permissionId], references: [id], onDelete: Cascade)
@@index([resourceId])
@@index([permissionId])
@@map("sys_resource_permission")
}
// 系统配置
model SysConfig {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
key String @unique
value String
remark String?
@@map("sys_config")
}