147 lines
5.4 KiB
Plaintext
147 lines
5.4 KiB
Plaintext
// 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路径
|
||
permission String? @unique() /// 权限字符
|
||
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")
|
||
}
|