一、涉及用户表,角色表
用户表: usertype=2 群众
usertype=4 党员(后台添加或导入)
usertype=8 注册党员
角色表: (userid, treeid, relation)
relation=1 党组织党务工作者
relation=2 党组织书记
relation=4 片区党务工作者
relation=8 片区书记
2. 前端js处理规定
usertype=16 表示用户为党员且某党组织党务工作者
usertype=32 表示用户为党员且某党组织书记
usertype=64 表示用户为党员且片区党务工作者
usertype=128 表示用户为党员且片区书记
二、TreeCode设计及使用技巧
1. 应用场景
项目中,数据存在树型结构,且ID存在一定的生成规则
如:根节点ID为01, 下级ID为0101,0102....(两位一个层级)
2. 使用技巧
原始实现与treecode实现的区别
原始实现
表结构存在:id, parentid
新增下级:id可能是使用guid
treecode实现
表结构只存在:id
新增下级:使用生成treecode的方法。保存id的唯一性。
-----------------------------------------------------
----新增----
ALTER PROC [dbo].[sp_DJAreas_insert]
@Id varchar(50) output,
@ParentId varchar(50),
@Name varchar(255),
@AreaType int,
@PQType int,
@Summary varchar(500),
@LastUserId varchar(32),
@Status int,
@Flags int,
--@IsDelete bit,
@CreateUserId varchar(32)
AS
IF @PQType IS NULL
SELECT @PQType=0
EXEC sp_DJAreas_newId @id output,@ParentId
IF EXISTS(SELECT Id FROM tblDJAreas WHERE Name=LTRIM(RTRIM(@Name)) AND Id<>@Id AND IsDelete=0)
RETURN 10014;
INSERT INTO tblDJAreas(Id,Name,AreaType,PQType,Summary,LastModify,LastUserId,Status,Flags,IsDelete,CreateUserId,CreateDate)VALUES(@Id,@Name,@AreaType,@PQType,@Summary,GETDATE(),@LastUserId,@Status,@Flags,0,@CreateUserId,GETDATE())
-----------------------------------------------------
生成treecode的存储过程-----------------
ALTER PROC [dbo].[
sp_DJAreas_newId]
@Id varchar(50) output,
@ParentID varchar(50)=NULL
AS
DECLARE @l INT
SELECT @ParentID = ISNULL(@ParentID,'')
SELECT @l=LEN(@ParentID)
SELECT TOP 1 @ID = @ParentID + t.ID FROM tblDJTreeCode t
LEFT JOIN (
SELECT SUBSTRING(ID,@l+1,2) AS ID FROM tblDJAreas WHERE ID LIKE ISNULL(@ParentID,'')+'__'
) o
ON t.ID=o.ID
WHERE o.ID IS NULL
理解:WHERE o.ID IS NULL 除去tblDJAreas表中已存在的数据,再取tblDJTreeCode中的第一条数据。并返回ID
数据表结构 tblDJTreeCode(id)
id 为0-9 a-z 共36个字符的两位排列组合,36*36 共有1295种情况
若为三位排列组合,则36*36*36种情况。
-------------------------------------------------
原始实现
表结构存在:id, parentid
查询:对同一张表,需要使用两次,S型连接。
按条件查询:不能灵活的查询本级,下级或所有下级等。
treecode实现
表结构只存在:id
查询:只操作一张表
按条件查询:能灵活的查询本级,下级或所有下级等。
如:where id like '01__' 查询01的下级。
where id like '01____' 查询01的下下级。
where id like '01%' 查询01的所有下级。
说明:_ 是指占位符
三、用户来源(三个入口)
1. 同步党统系统 userType=4
2. 前台用户注册(注册党员,群众) userType=2
3. 区域化组织管理--》用户清单--》新增(注册党员) userType=8
4. 党组织&党员--》管理党员--》新增(注册党员)userType=8
------------------------UI--------------
一、积累UI组件库
二、如何封装成UI组件
------------------------DB--------------
1、多状态值
操作符: |, ^, &
分享到:
相关推荐
总结起来,“treecode.tar”提供的程序实现了Josh Barnes的树码算法,用于高效计算大量粒子的相互作用,其中涉及到数据加载、参数获取、引力计算以及并行处理等多个关键环节。这个压缩包中的源代码为我们揭示了这一...
6. **CUDA编程**:使用CUDA(Compute Unified Device Architecture)编程模型,编写GPU上的Treecode算法,包括kernel函数和数据传输。 7. **并行化策略**:比如,可以并行化粒子的分组,或者并行化树的遍历过程。 ...
"TreeCode 网站" 是一个以 SCSS 为主要技术构建的项目,SCSS(Sassy CSS)是 CSS 的一种预处理器,它允许我们使用变量、嵌套规则、混合、函数等特性来编写更优雅、更易于维护的 CSS 代码。在 "treecode-website-main...
这个代码设计用于并行计算机,采用Treecode和SPH技术解决了气体、恒星和暗物质的动力学方程,并包含了一个跟踪气体转化为恒星的算法。为了使学生能自我学习如何使用这个复杂的代码,Willi博士编写了详尽的文档。 综...
- **模型层**:实体类,对应数据库中的表结构,用于数据传输。 - **视图层**:Thymeleaf模板文件,根据后台传递的数据生成动态HTML页面。 5. **关键功能实现** - **用户管理**:包括用户注册、登录、权限控制等...
在计算机图形学领域,生成树是一种常见的数据结构和算法应用,尤其在三维场景构建中扮演着重要角色。本文将深入探讨如何使用VC++在Visual Studio环境下实现基于L系统的三维生成树算法。 首先,我们需要理解什么是L...