leetcode2020
2023-09-12 13:32:57 +08:00
综合方式一、二和其它老哥回复,可得:
1. 新增条目:条目没有`id`字段(或`id`为 null 或特殊标记)。
2. 编辑条目:条目有`id`字段,并且`del`字段未标记或为 0 。
3. 删除条目:不从列表中移除,而是保留`id`字段,并将`del`字段标记为 1 。
优点:
1. 数据一致性:通过保持所有条目(包括已删除的)在列表中,并明确标记它们的状态,我们可以减少因数据丢失或时间差产生的数据一致性问题。
2. 简化后端逻辑:后端可以直接根据`id`和`del`字段来确定应该执行哪种操作(新增、编辑或删除),而无需与数据库中的现有数据进行比较。
3. 前端逻辑清晰:前端只需要在用户执行删除操作时更新`del`字段,而不是从列表中移除条目,使得前端逻辑更为简单和清晰。
缺点:
1. 数据传输量:由于已删除的条目仍然保留在列表中,会稍微增加数据传输量。
示例:
{
"id": 1,
"name": "",
"age": 1,
"childTable": [
{ "id": null, "cardNo": "", "type": 1, "del": 0 }, // 新增
{ "id": 1, "cardNo": "", "type": 1, "del": 0 }, // 编辑
{ "id": 2, "cardNo": "", "type": 1, "del": 1 } // 删除
]
}