对于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.6k 阅读
8 回答6.5k 阅读
3 回答3.7k 阅读✓ 已解决
2 回答3.3k 阅读
3 回答736 阅读✓ 已解决
5 回答1.5k 阅读
3 回答1.8k 阅读✓ 已解决
是问数据库的设计?还是当县人数发生变化时,如何去统计区/市/省的最新人数?
1、数据库按照当前设计即可,id、type、parentId、num...。县的parentId为区,区的parentId为市,市的parentId为省
2、统计某市或省下最新总人数,可以自己写mysql的函数。传递省市区的id,递归查询增加数量即可
3、为了方便统计,在用户操作层面,不管是批量变更还是同时变更,都应该以 县 为单位。比如,只能修改某省市区下 县的人数,而不能直接修改省市区的人数