跳到主要内容

数据库表设计

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 (用户信息表)

存储系统用户的基础信息。

字段名类型说明
idGuid主键,用户唯一标识
usernamestring(24)用户名,唯一,非空
nicknamestring(24)用户昵称
passwordstring(100)加密后的密码
avatarstring(500)头像 URL
emailstring(100)邮箱,唯一
is_activebool是否激活
is_adminbool是否超级管理员
group_idsstring用户所属权限组 ID 列表 (逗号分隔)
create_timeDateTime创建时间
......其他审计字段

lin_group (权限组表)

定义用户权限组。

字段名类型说明
idlong主键,自增
namestring(60)权限组名称,唯一
infostring(255)权限组描述
is_staticbool是否为静态分组
levelbyte级别 (暂未使用)
create_timeDateTime创建时间
......其他审计字段

lin_permission (权限表)

定义系统中的具体权限点。

字段名类型说明
idlong主键,自增
namestring(60)权限名称,唯一
modulestring(50)权限所属模块
mountbool是否挂载到菜单
create_timeDateTime创建时间
......其他审计字段

lin_group_permission (分组权限关系表)

存储权限组与权限之间的多对多关系。

字段名类型说明
idlong主键,自增
group_idlong权限组 ID
permission_idlong权限 ID
create_timeDateTime创建时间

lin_log (日志表)

记录系统操作日志。

字段名类型说明
idlong主键,自增
messagestring(450)日志信息
user_idGuid操作用户 ID
usernamestring(24)操作用户名
status_codeintHTTP 状态码
methodstring(20)请求方法
pathstring(500)请求路径
permissionstring(100)访问的权限
authoritystring(100)用户权限
create_timeDateTime创建时间
......其他审计字段

lin_file (文件表)

记录上传的文件信息。

字段名类型说明
idlong主键,自增
pathstring(500)文件路径
namestring(100)文件显示名称
extensionstring(50)文件扩展名
sizelong文件大小 (字节)
md5string(40)文件 MD5 值
typeshort文件类型 (1 本地, 2 ...)
create_timeDateTime创建时间
......其他审计字段

更详细的表结构和关系请直接查阅 src/LinCms.Core/Entities 下的实体类定义。