如何设计的一个组织结构

一个组织结构,通常是树状结构,但是有时候我们只需要对某个子树进行操作或读取,如果最终的存储是树状,层级过多时是不太合适的。
初步设计了如下结构

export interface IOrganization {
  _id?: any;
  id?: any;
  name: string;
  parents?: string[];
  admin?: string;
  members: string[];
  // org special data map
  membersData: {
    [key: string]: IOrgnizationMember;
  };
  state?: number;
}
特别之处:
1. parents字段:纪录了所有的上级,这样就能够快速检索到某个组织的子组织,或者根据某个组织找到上级和下级 => 创建时,通过父组织的parents.concat([parentId])获取,
2. membersData:用于纪录成员数据,这也是为了将members设置成id数组,data的key就是members中的一个id, 查找某个用户的数据直接可以寻址
3. state标记是否被删除或者审核等等



全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 14:01
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhang:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务