对于MYSQL树形结构如何统计各个节点对应的业务数量
例如:mysql有id、type、parentId、num字段,type 1、2、3代表省市县,parentId为父级id,num代表各个类型的人口数量,一个市下面有多个县,市的num数量是该市下所有县num数量的和,省也是同理。
如果县人口出现了变化,有什么方案快速高效的更新各个节点的num。
如果人口变动这个业务在代码中各个模块都有涉及,并且还有批量变更和同时变更的情况,要保证数据的一致性该如何设计
对于MYSQL树形结构如何统计各个节点对应的业务数量
例如:mysql有id、type、parentId、num字段,type 1、2、3代表省市县,parentId为父级id,num代表各个类型的人口数量,一个市下面有多个县,市的num数量是该市下所有县num数量的和,省也是同理。
如果县人口出现了变化,有什么方案快速高效的更新各个节点的num。
如果人口变动这个业务在代码中各个模块都有涉及,并且还有批量变更和同时变更的情况,要保证数据的一致性该如何设计
10 回答11.1k 阅读
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
是问数据库的设计?还是当县人数发生变化时,如何去统计区/市/省的最新人数?
1、数据库按照当前设计即可,id、type、parentId、num...。县的parentId为区,区的parentId为市,市的parentId为省
2、统计某市或省下最新总人数,可以自己写mysql的函数。传递省市区的id,递归查询增加数量即可
3、为了方便统计,在用户操作层面,不管是批量变更还是同时变更,都应该以 县 为单位。比如,只能修改某省市区下 县的人数,而不能直接修改省市区的人数