Dexie使用变量作为列名实现多表增改操作的可行性咨询
实现方案
这个需求可以直接实现,核心是利用动态属性构造的语法能力,不同开发语言的写法如下:
JavaScript(含Node.js各类数据库操作、ORM调用场景)
ES6及以上版本直接使用计算属性名语法即可,示例:
// 定义存储列名的变量,可根据业务逻辑动态赋值 const updateColumn = 'name'; // 方括号包裹变量即可将变量值作为对象的属性名 db.friends.update(2, { [updateColumn]: "Number 2" });
如果需要拼接公共字段前缀,直接处理变量即可:
const commonPrefix = 'base_'; const field = 'name'; const updateColumn = `${commonPrefix}${field}`; db.friends.update(2, { [updateColumn]: "Number 2" });
Python(各类Python数据库驱动、ORM场景)
先构造字典参数再传入调用即可,示例:
update_column = 'name' # 拼接前缀写法:update_column = f"base_{field}" update_data = {update_column: "Number 2"} db.friends.update(2, update_data)
其他语言
所有支持动态构造字典/哈希表/对象属性的语言都可以实现该需求,核心逻辑都是先把列名存到变量里,再用变量作为key构造更新参数,最后传入调用方法即可。
内容的提问来源于stack exchange,提问作者user2298075
相关产品推荐
相关产品推荐

