数据库表设计
大约 2 分钟约 716 字
数据库表设计
LinCMS.NET Core 使用 FreeSql 的 CodeFirst 模式来定义和管理数据库表结构。实体类 (Entity) 定义在 src/LinCms.Core/Entities
目录下,按模块划分。
以下是核心模块的部分表结构说明:
FreeSql.Repository 仓储层
FreeSql 提供了强大的仓储层实现,简化了数据库操作。
- IBaseRepository<TEntity, TKey>: 基础仓储接口,提供了常用的 CRUD 操作。
- GuidRepository<TEntity>: 针对主键为 Guid 的实体提供的便捷仓储。
- LongRepository<TEntity>: 针对主键为 long 的实体提供的便捷仓储。
开发者可以通过依赖注入获取特定实体的仓储实例,例如:
private readonly IBaseRepository<LinUser> _userRepository;
public UserService(IBaseRepository<LinUser> userRepository)
{
_userRepository = userRepository;
}
public async Task<LinUser> GetUserAsync(Guid userId)
{
return await _userRepository.Select.Where(u => u.Id == userId).ToOneAsync();
}
核心表 (部分)
lin_user
(用户信息表)
存储系统用户的基础信息。
字段名 | 类型 | 说明 |
---|---|---|
id | Guid | 主键,用户唯一标识 |
username | string(24) | 用户名,唯一,非空 |
nickname | string(24) | 用户昵称 |
password | string(100) | 加密后的密码 |
avatar | string(500) | 头像 URL |
email | string(100) | 邮箱,唯一 |
is_active | bool | 是否激活 |
is_admin | bool | 是否超级管理员 |
group_ids | string | 用户所属权限组 ID 列表 (逗号分隔) |
create_time | DateTime | 创建时间 |
... | ... | 其他审计字段 |
lin_group
(权限组表)
定义用户权限组。
字段名 | 类型 | 说明 |
---|---|---|
id | long | 主键,自增 |
name | string(60) | 权限组名称,唯一 |
info | string(255) | 权限组描述 |
is_static | bool | 是否为静态分组 |
level | byte | 级别 (暂未使用) |
create_time | DateTime | 创建时间 |
... | ... | 其他审计字段 |
lin_permission
(权限表)
定义系统中的具体权限点。
字段名 | 类型 | 说明 |
---|---|---|
id | long | 主键,自增 |
name | string(60) | 权限名称,唯一 |
module | string(50) | 权限所属模块 |
mount | bool | 是否挂载到菜单 |
create_time | DateTime | 创建时间 |
... | ... | 其他审计字段 |
lin_group_permission
(分组权限关系表)
存储权限组与权限之间的多对多关系。
字段名 | 类型 | 说明 |
---|---|---|
id | long | 主键,自增 |
group_id | long | 权限组 ID |
permission_id | long | 权限 ID |
create_time | DateTime | 创建时间 |
lin_log
(日志表)
记录系统操作日志。
字段名 | 类型 | 说明 |
---|---|---|
id | long | 主键,自增 |
message | string(450) | 日志信息 |
user_id | Guid | 操作用户 ID |
username | string(24) | 操作用户名 |
status_code | int | HTTP 状态码 |
method | string(20) | 请求方法 |
path | string(500) | 请求路径 |
permission | string(100) | 访问的权限 |
authority | string(100) | 用户权限 |
create_time | DateTime | 创建时间 |
... | ... | 其他审计字段 |
lin_file
(文件表)
记录上传的文件信息。
字段名 | 类型 | 说明 |
---|---|---|
id | long | 主键,自增 |
path | string(500) | 文件路径 |
name | string(100) | 文件显示名称 |
extension | string(50) | 文件扩展名 |
size | long | 文件大小 (字节) |
md5 | string(40) | 文件 MD5 值 |
type | short | 文件类型 (1 本地, 2 ...) |
create_time | DateTime | 创建时间 |
... | ... | 其他审计字段 |
更详细的表结构和关系请直接查阅 src/LinCms.Core/Entities
下的实体类定义。