比如说有一个 Task 表, 每个 Task 有很多个 Step , Step 是有顺序的,并且可以进行修改。
我现在想的是两种途径:
我现在倾向的是第二种方法,用四个字符表示一个 Step 的 fake_id , 这样只需要 144 个字符,一个 Task 就能有 150 多万个 Step 。
想问问大家我这个思路正确吗?总感觉好像把问题弄复杂了,但是又不知道简单点怎么搞。
1
SoloCompany 2016-07-05 00:20:12 +08:00 1
如果是工作流设计的话,你的所谓「频繁」更改到底有多频繁?还是你自己脑补了很频繁?
说一个不相关的取舍问题,大家都知道, ArrayList 的插入和删除性能不如 LinkedList ,但事实上这一点性能开销完全可以忽略,以至于在大多数情况下, LinkedList 根本没有存在的必要 |
2
gulu OP @SoloCompany 谢谢你,额,其实是自己脑补的很频繁的,因为就是我一个自己做着玩的项目。但是如果改一次顺序需要把 Task 的每个 Step 都读写一遍的话从直觉上觉得不对...
|
3
pubby 2016-07-05 08:25:54 +08:00 via Android 1
为了 step 排序,我把所有 step 删除重新 insert 都干过。
至于性能问题,你想多了 |
4
zhjits 2016-07-05 11:51:00 +08:00 1
参考当年带行号的 BASIC 语言: Step 按 index 排序,每次 append 的时候 index +10 ;要插入的话取前后 index 平均数作为待插入项的 index ,不够了就完整 rebuild 一次。
|