MySQL 使用多列还是用 JSON 列
现有 project
项目 和 order
订单两个表。1个 project
可能会有 n 个 order
,project
中的参数可以修改,订单在生成时要保存 project
中的配置(类似快照),后续如果 project
发生变更,确保对已生成的订单不会产生影响。
问题来了,请问我是把项目表中的配置字段全部照搬在订单表里加一遍,还是搞个新的 JSON 字段统一存起来(JSON字段中的数据不会变更,仅用于查询,可能需要做虚拟列,函数索引)?
几个字段 就单独加 很多就 JSON
配置字段是否重要?需不需要知道project中配置字段每次修改的变更记录,后续是否需要回溯? 1、如果只是配置字段本省,不用回溯,那就json 2、如果需要类似回溯,最好是单独设计一张变更记录副表
楼上的方案比较好,搞一个订单附表。
然后适当的设置key的前缀。
例如 product_name ,表示下单时项目的名称。
这样,和该订单的与peoject无关的项,区分开来。