乡村管理系统 DOCS
文档 核心概念

核心概念

乡村管理系统不是一个写死的软件,它由"模块、字段、记录、视图、关联、角色"这六个概念拼出来,理解它们,你就能搭出村里任何一份台账。

为什么要先理解概念

市面上很多系统是写死的:村民花名册就是村民花名册,想多加一列"是否退役军人"得找开发商改代码。本系统不是这样。它把"一份表格长什么样"这件事交给你自己定:村里今年要统计垃圾分类积分,你就建一个"垃圾分类积分"模块;明年要登记光伏发电户,你再建一个"光伏发电"模块。系统本身不知道什么叫"村民",它只知道模块字段记录这几个抽象的东西。

所以花十分钟把下面六个词搞清楚,比直接动手建表省一天时间。这页讲完,后面所有功能你都能顺着这套词理解。

一句话记住

模块 = Excel 工作簿里的一张表;字段 = 表的列;记录 = 表的行;视图 = 给同一张表换个看法;关联 = 两张表之间的连接线;角色 = 谁能进哪张表。

模块(Module): 一张表 = 一份台账

模块就是侧边栏菜单里能点开的一份独立台账。"村民花名册"是一个模块,"党员名册"是另一个模块,"低保户"又是一个模块。它们彼此独立,各有各的列,各有各的数据。

新建一个模块的入口是侧边栏底部的模块管理(菜单默认只给 admin 开放,普通用户可由 admin 在角色权限里配置可见性)。进去之后右上角点"新建模块",填名字、选图标、定义有哪些字段。保存之后,这个模块会立刻出现在侧边栏,所有有权限的人都能用。

这是模块这不是模块
村民花名册"张三"(那是一条记录)
低保户"身份证号"(那是一个字段)
党员名册"全村数据"(太大了,要拆成多个模块)
党费缴纳记录"党费缴纳"功能页(那是专门的页面,不是普通模块)

字段(Field): 表的列 = 一类信息

字段就是模块里的一列。"姓名"是一个字段,"身份证号"是一个字段,"是否党员"也是一个字段。每个字段有自己的类型,类型决定了这一列能填什么、怎么校验、怎么显示。

系统一共支持 11 种字段类型,在新建字段时从下拉里选:

类型用来装什么
文本姓名、地址、备注
数字年龄、金额、户号
日期出生日期、入党日期
下拉单选性别、民族等固定选项,只能选一个
下拉多选可多选的标签类信息
身份证号自动校验 18 位格式
电话号码手机或座机,带格式校验
是否值固定为"是"/"否",例如"是否低保户"
住址(逐级选择)省市区/组这类逐级选择的地址
派生字段(自动计算)根据其他字段算出来,例如年龄、党龄
附件(图片/PDF/Word)身份证扫描件、合影、走访照

派生字段不能手填,系统按公式自动算。例如年龄基于身份证号自动算,身份证号一改,年龄就跟着变。这也意味着批量编辑时,派生字段是灰的,改不动。

注意:关联不是一种字段类型,而是"模块之间连线"的独立机制(见下面"关联(Link)"一节),配置时选的是已有字段(通常是文本或数字类型的"户号""身份证号"),不会新增字段类型。

字段一旦有数据,改类型要小心

例如已经填了 500 条"年龄"是数字,你把它改成"文本",原本的数据还在,但派生公式会失效,导入导出也会重新校验。改类型前最好先去备份里手动备一次。

记录(Record): 表的行 = 一个对象

记录就是表里的一行。在"村民花名册"里,张三是一条记录,李四是另一条记录。每条记录对应这个模块所有字段的一组值。

新增一条记录的方法有四种,村里最常用的是前两种:

  1. 手工新增打开模块,点右上角"新建",填表保存。
  2. Excel 导入右上角"导入",选 .xlsx 文件,匹配列,选导入策略(下面讲),一次几百条进系统。
  3. 扫码填写生成二维码,把链接发到微信群或入户时扫码,村民手机自己填,免登录。
  4. 关联自动建例如在低保户里填户主时,可以一边新建关联一边把村民也建出来。

导入时系统会问你用哪种策略(共 4 种,详见导入导出):

策略对已有记录对新行
仅新增(首次导入)不判重,撞唯一约束的行报错新增
跳过重复(补录)跳过不动新增
增量更新(同步刷新)只覆盖表里填了的字段新增
完全替换(慎用)同增量更新(当前版本不清空未填字段)新增

判断"已有"还是"新增",靠你选的匹配字段。村民模块一般选身份证号,因为它唯一。

视图(View): 同一份数据的不同看法

同一个"村民花名册"里有 1800 条数据,但村支书想看"60 岁以上",妇女主任想看"育龄妇女",会计想看"户主+联系电话"。如果每次都从头筛一遍很累。视图就是把"筛选条件 + 日期范围 + 是否按户分组显示"打包存下来,起个名字(排序和列不随视图保存)。

建视图的方法:

  1. 先筛出你要的样子用顶部筛选条件挑出想看的记录,拖动列宽,隐藏不需要的列。
  2. 点页面左上角视图下拉旁的"保存为新视图"起个名字,例如60岁以上老人
  3. 下次直接切左上角下拉一选,数据立刻变成那个样子。

视图不复制数据,只是换个看法。底层还是同一份记录。

关联(Link): 模块之间的连接线

"低保户"模块里有一列"户号","村民花名册"里也有"户号"。这两个不是巧合 —— 你可以把它们用关联字段连起来。连上之后:

  • 在低保户的详情页,能直接看到这一户所有家庭成员;
  • 在村民详情页,能看到这个人所在的户是不是低保户;
  • 村民信息一改,关联自动跟着指过去,不会指错人。

建关联的步骤:进模块管理 → 点顶部"模块关联" → "新建关联" → 选主模块和主字段、选关联模块和关联字段(通常是身份证号户号)、起个名字 → 保存。不需要新增字段,关联用的是两个模块里已经存在的字段。

关联不是复制

关联字段只存"我指向谁",不复制对方的数据。所以村民改了电话号码,在关联那边看到的也是新号码,不会出现"村民花名册改了,低保户里还是旧的"这种问题。

角色(Role): 谁能看、谁能改

系统里有两种角色:

角色能做什么
admin所有功能,包括建模块、改字段、管用户、看日志、恢复备份
普通用户只能用 admin 给他勾选的模块,且每个模块按 8 个动作勾选: 查看 / 新增 / 编辑 / 删除 / 导入 / 导出 / 打印 / 扫码填写

勾权限的地方在侧边栏底部角色权限。例如妇女主任只勾"村民花名册(查看+新增+编辑)"+"计生台账(查看+新增+编辑)",别的菜单她登录后根本看不见。这套权限按模块 × 动作勾选(动作有: 查看 / 新增 / 编辑 / 删除 / 导入 / 导出),不到字段级别 —— 如果"低保金额"这种敏感列不想让普通用户看,可以在角色权限里把整个模块设为不可查看,或反馈给作者考虑字段级。

回收站 / 备份 / 日志: 数据安全的三道防线

村里数据不能丢,系统给了三层保险,作用各不一样,别搞混:

机制解决什么保留多久在哪儿
全局回收站误删一条记录、一个模块7 天,过期自动清侧边栏回收站,可一键还原
备份整个数据库损坏、电脑坏、想回退到上周状态每天自动备 1 份,保留 30 份;也可手动导出 .db侧边栏备份恢复
操作日志查"是谁、什么时候、改了哪条记录"长期保留侧边栏操作日志,admin 可见

简单记:删错了找回收站,坏掉了找备份,要追责找日志。

回收站不是无限期

过了 7 天自动彻底清空,清掉之后回收站里也看不到了,只能去备份里找当天那份 .db 恢复。重要数据被删后,别拖。

概念之间的关系图

用文字画一遍,从大到小:

  • 整个系统装在一台电脑上,里面有一个 SQLite 数据库;
  • 数据库里有很多模块,每个模块就是一张表;
  • 每个模块里定义了若干字段(列),决定能装哪些信息;
  • 每个模块里存了很多记录(行),每条记录就是一个对象;
  • 记录可以通过关联字段指向另一个模块的某条记录,这就是模块之间的连接;
  • 同一个模块可以保存多个视图,给不同人看不同切面;
  • 角色决定每个用户能进哪些模块、能做哪几个动作(查看/新增/编辑/删除/导入/导出);
  • 所有变更被日志记录,误删的进回收站,整体数据有定时备份兜底。

顺序记一遍:模块装字段,字段定义记录长什么样,记录之间通过关联连接,视图换看法,角色控访问,日志/回收站/备份保命

一个完整业务例子串起来

用最常见的场景走一遍:村里要管村民、党员,还要每月收党费。这是三个模块的协作。

  1. 建"村民花名册"模块字段包括:姓名(文本)、身份证号(身份证号)、户号(文本)、性别(下拉单选)、出生日期(日期)、年龄(派生字段,基于身份证号)、电话(电话号码)、是否党员(是否)。匹配字段用身份证号。
  2. 建"党员名册"模块字段包括:身份证号(身份证号)、入党日期(日期)、党龄(派生字段,基于入党日期)、组织关系所在支部(下拉单选)、月收入档位(下拉单选)。这里关键的一步是模块关联:在模块管理里把这个身份证号字段和村民花名册的身份证号字段连起来,不用重新录一遍姓名住址,直接指过去,村民那边电话改了这边也能查到最新的。
  3. 党费缴纳走专门的页面侧边栏党费缴纳不是普通模块,是预置功能。它读取"党员名册"里每个党员的月收入档位,按系统设置里配置的档位金额(在系统设置里改)自动算出应缴金额,你只需要点"标记已缴"。
  4. 做一个"60 岁以上党员"视图在党员名册里筛"年龄 ≥ 60",保存为视图,以后慰问名单一键导出。
  5. 给妇女主任开账号用户管理里建账号,角色权限里把"村民花名册"的查看/新增/编辑勾上,"党员名册"全部不勾,她登录后只能看到村民这一个菜单。
  6. 万一删错了例如不小心整个"党员名册"模块被删了,7 天内进回收站点"还原",数据原样回来;超过 7 天,就去备份恢复里挑昨天那份 .db。

这一套走完,你已经把模块、字段、记录、派生、关联、视图、角色、回收站、备份九个概念全用上了。接下来去模块管理,实际动手建第一个模块。