- 主题:这个算法怎么设计?
有多个公司,每个公司有多个组,每个公司的每个职员属于且仅属于公司的某个组。
现在知道一个职员的 名字 ,怎么快速地找出得到他所在组的全部成员。
我简单设计了一个觉得太麻烦了。
std::map<int64_t, std::map<int64_t, std::set<std::string>> groupMembers;
首先根据 companyId 找到这个公司的所有组,再遍历所有组,对每个组成员所在的set进行 find, 找到了就返回整个 set。
有更优雅高效的解决方案吗?
--
修改:speedboy2998 FROM 113.246.63.*
FROM 218.76.62.*
SAAS 平台,可能几十万个公司。几百万上千万职员。
【 在 lixunhuansk 的大作中提到: 】
: 无非遍历或者 缓存嘛~
: 既然是公司, 这点数据量 都不是事.
:
--
FROM 113.246.63.*
这里的ID我写错了,ID是字符串,不同的公司可能相同,可以理解为名字
【 在 hgoldfish 的大作中提到: 】
: ID 包含组名,比如 hgoldfish 和 speedboy2998 的 ID 带上组:
: nowhere.dev.hgoldfish
: nowhere.dev.speedboy2998
: ...................
--
FROM 113.246.63.*
嗯,这个方案可以,就是空间占用比较多。
【 在 GoGoRoger 的大作中提到: 】
: struct info{
: Int corp;
: Int team;
: ...................
--
修改:speedboy2998 FROM 113.246.63.*
FROM 113.246.63.*