【数据库 -- 表设计】
订单表与订单产品表加扩展字段
IF OBJECT_ID('RB_OrderInfo') IS NULL PRINT 'Error:Table RB_OrderInfo don''t exists!'
ELSE
IF NOT EXISTS(SELECT 1 FROM SYSOBJECTS T1 JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='RB_OrderInfo' AND T2.NAME='ExtendedInfo')
begin
ALTER TABLE RB_OrderInfo ADD ExtendedInfo nvarchar(1000)
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'订单扩展信息,以JSON字符串形式保存' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RB_OrderInfo', @level2type=N'COLUMN',@level2name=N'ExtendedInfo'
end
IF @@ERROR>0 PRINT 'Error:Failed to add column ExtendedInfo on table RB_OrderInfo!'
GO
IF OBJECT_ID('RB_OrderList') IS NULL PRINT 'Error:Table RB_OrderList don''t exists!'
ELSE
IF NOT EXISTS(SELECT 1 FROM SYSOBJECTS T1 JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='RB_OrderList' AND T2.NAME='ExtendedInfo')
begin
ALTER TABLE RB_OrderList ADD ExtendedInfo nvarchar(1000)
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'订单扩展信息,以JSON字符串形式保存' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RB_OrderList', @level2type=N'COLUMN',@level2name=N'ExtendedInfo'
end
IF @@ERROR>0 PRINT 'Error:Failed to add column ExtendedInfo on table RB_OrderList!'
GO
【业务设计 -- 业务逻辑设计,梳理 】
1. 中间表保存对应的字段
2. 以Json字符串的形式保存在订单表扩展字段
【风险识别 -- 性能,并发,扩展】
【注意事项 -- 编码规范、可能存在Bug、风险和业务关联】
1. 涉及到公共方法时注意验证,不要影响到其他逻辑



1、签入SQL脚本、
2、中间表新增字段
3、订单策略把中间表的json保存到ERP订单表