feat: 添加租户字段及索引重构

This commit is contained in:
2026-03-24 16:15:24 +08:00
parent 989d89579b
commit 99fbce121a
2 changed files with 73 additions and 50 deletions

View File

@@ -11,11 +11,11 @@ import (
"errors" "errors"
"gitea.com/red-future/common/http" "gitea.com/red-future/common/http"
"gitea.com/red-future/common/utils"
"github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv" "github.com/gogf/gf/v2/util/gconv"
"gitea.com/red-future/common/beans" "gitea.com/red-future/common/beans"
"gitea.com/red-future/common/minio"
) )
type asset struct{} type asset struct{}
@@ -92,11 +92,15 @@ func (s *asset) GetOne(ctx context.Context, req *dto.GetAssetReq) (res *dto.GetA
if err != nil { if err != nil {
return return
} }
return &dto.GetAssetRes{ res = &dto.GetAssetRes{
Asset: assetListItem, Asset: assetListItem,
CategoryName: getCategoryRes.Name, CategoryName: getCategoryRes.Name,
ImgAddressPrefix: minio.GetFileAddressPrefix(ctx), }
}, nil res.ImgAddressPrefix, err = utils.GetFileAddressPrefix(ctx)
if err != nil {
return
}
return
} }
// GetAssetAndSku 获取资产和Sku详情 // GetAssetAndSku 获取资产和Sku详情
@@ -125,12 +129,17 @@ func (s *asset) GetAssetAndSku(ctx context.Context, req *dto.GetAssetAndSkuReq)
if err = gconv.Structs(skus, assetSkuListResItem); err != nil { if err = gconv.Structs(skus, assetSkuListResItem); err != nil {
return return
} }
return &dto.GetAssetAndSkuRes{ res = &dto.GetAssetAndSkuRes{
Asset: assetListItem, Asset: assetListItem,
Skus: assetSkuListResItem, Skus: assetSkuListResItem,
TenantModuleType: moduleType.Options, TenantModuleType: moduleType.Options,
ImgAddressPrefix: minio.GetFileAddressPrefix(ctx), }
}, nil url, err := utils.GetFileAddressPrefix(ctx)
if err != nil {
return
}
res.ImgAddressPrefix = url
return
} }
// Update 更新资产 // Update 更新资产

View File

@@ -5,6 +5,7 @@
CREATE TABLE IF NOT EXISTS assets_category ( CREATE TABLE IF NOT EXISTS assets_category (
-- 基础字段 -- 基础字段
id BIGINT PRIMARY KEY, -- 从BIGSERIAL改为BIGINT取消自增 id BIGINT PRIMARY KEY, -- 从BIGSERIAL改为BIGINT取消自增
tenant_id BIGINT NOT NULL DEFAULT 0, -- 租户ID int8
creator VARCHAR(64) NOT NULL, creator VARCHAR(64) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL, updater VARCHAR(64) NOT NULL,
@@ -24,6 +25,7 @@ CREATE TABLE IF NOT EXISTS assets_category (
); );
-- 为分类表添加索引移除原uk_category_id唯一索引保留其他索引 -- 为分类表添加索引移除原uk_category_id唯一索引保留其他索引
CREATE INDEX idx_category_tenant_id ON assets_category(tenant_id);
CREATE INDEX idx_category_parent_id ON assets_category(parent_id); CREATE INDEX idx_category_parent_id ON assets_category(parent_id);
CREATE INDEX idx_category_level ON assets_category(level); CREATE INDEX idx_category_level ON assets_category(level);
CREATE INDEX idx_category_status ON assets_category(status); CREATE INDEX idx_category_status ON assets_category(status);
@@ -32,6 +34,7 @@ CREATE INDEX idx_category_is_leaf_node ON assets_category(is_leaf_node);
-- 分类表字段注释移除bid字段注释 -- 分类表字段注释移除bid字段注释
COMMENT ON TABLE assets_category IS '商品/服务分类表'; COMMENT ON TABLE assets_category IS '商品/服务分类表';
COMMENT ON COLUMN assets_category.id IS '主键ID非自增'; COMMENT ON COLUMN assets_category.id IS '主键ID非自增';
COMMENT ON COLUMN assets_category.tenant_id IS '租户ID';
COMMENT ON COLUMN assets_category.creator IS '创建人'; COMMENT ON COLUMN assets_category.creator IS '创建人';
COMMENT ON COLUMN assets_category.created_at IS '创建时间'; COMMENT ON COLUMN assets_category.created_at IS '创建时间';
COMMENT ON COLUMN assets_category.updater IS '更新人'; COMMENT ON COLUMN assets_category.updater IS '更新人';
@@ -49,12 +52,12 @@ COMMENT ON COLUMN assets_category.status IS '状态1启用/0禁用';
--------------------pgsql创建assets_category表语句--------------------------- --------------------pgsql创建assets_category表语句---------------------------
--------------------pgsql创建assets_asset表语句--------------------------- --------------------pgsql创建assets_asset表语句---------------------------
-- 资产表asset -- 资产表asset
CREATE TABLE IF NOT EXISTS assets_asset ( CREATE TABLE IF NOT EXISTS assets_asset (
-- 嵌入基础字段(复用 SQLBaseDO 结构) -- 嵌入基础字段(复用 SQLBaseDO 结构)
id BIGINT PRIMARY KEY, -- 从BIGSERIAL改为BIGINT取消自增 id BIGINT PRIMARY KEY, -- 从BIGSERIAL改为BIGINT取消自增
tenant_id BIGINT NOT NULL DEFAULT 0, -- 租户ID int8
creator VARCHAR(64) NOT NULL, creator VARCHAR(64) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL, updater VARCHAR(64) NOT NULL,
@@ -85,9 +88,10 @@ CREATE TABLE IF NOT EXISTS assets_asset (
-- 租户相关 -- 租户相关
tenant_module_type VARCHAR(64) DEFAULT '' tenant_module_type VARCHAR(64) DEFAULT ''
); );
-- 为资产表添加索引移除原uk_asset_id唯一索引保留其他索引 -- 为资产表添加索引
CREATE INDEX idx_asset_tenant_id ON assets_asset(tenant_id);
CREATE INDEX idx_asset_category_id ON assets_asset(category_id); CREATE INDEX idx_asset_category_id ON assets_asset(category_id);
CREATE INDEX idx_asset_type ON assets_asset(type); CREATE INDEX idx_asset_type ON assets_asset(type);
CREATE INDEX idx_asset_status ON assets_asset(status); CREATE INDEX idx_asset_status ON assets_asset(status);
@@ -95,9 +99,10 @@ CREATE INDEX idx_asset_online_time ON assets_asset(online_time);
CREATE INDEX idx_asset_offline_time ON assets_asset(offline_time); CREATE INDEX idx_asset_offline_time ON assets_asset(offline_time);
CREATE INDEX idx_asset_tenant_module_type ON assets_asset(tenant_module_type); CREATE INDEX idx_asset_tenant_module_type ON assets_asset(tenant_module_type);
-- 为资产表添加注释移除bid字段注释更新id注释 -- 为资产表添加注释
COMMENT ON TABLE assets_asset IS '资产主表'; COMMENT ON TABLE assets_asset IS '资产主表';
COMMENT ON COLUMN assets_asset.id IS '主键ID非自增'; COMMENT ON COLUMN assets_asset.id IS '主键ID非自增';
COMMENT ON COLUMN assets_asset.tenant_id IS '租户ID';
COMMENT ON COLUMN assets_asset.creator IS '创建人'; COMMENT ON COLUMN assets_asset.creator IS '创建人';
COMMENT ON COLUMN assets_asset.created_at IS '创建时间'; COMMENT ON COLUMN assets_asset.created_at IS '创建时间';
COMMENT ON COLUMN assets_asset.updater IS '更新人'; COMMENT ON COLUMN assets_asset.updater IS '更新人';
@@ -130,6 +135,7 @@ COMMENT ON COLUMN assets_asset.tenant_module_type IS '租户模块类型';
CREATE TABLE IF NOT EXISTS assets_asset_sku ( CREATE TABLE IF NOT EXISTS assets_asset_sku (
-- 基础字段(继承 SQLBaseDO 通用字段) -- 基础字段(继承 SQLBaseDO 通用字段)
id BIGINT PRIMARY KEY, -- 主键ID非自增 id BIGINT PRIMARY KEY, -- 主键ID非自增
tenant_id BIGINT NOT NULL DEFAULT 0, -- 租户ID int8
creator VARCHAR(64) NOT NULL, creator VARCHAR(64) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL, updater VARCHAR(64) NOT NULL,
@@ -152,24 +158,26 @@ CREATE TABLE IF NOT EXISTS assets_asset_sku (
stock_mode SMALLINT NOT NULL DEFAULT 1, -- 库存管理模式1-明细模式 2-批次模式 stock_mode SMALLINT NOT NULL DEFAULT 1, -- 库存管理模式1-明细模式 2-批次模式
category_id BIGINT NOT NULL DEFAULT 0, -- 分类ID category_id BIGINT NOT NULL DEFAULT 0, -- 分类ID
category_path VARCHAR(512) DEFAULT '', -- 分类路径 category_path VARCHAR(512) DEFAULT '', -- 分类路径
tenant_module_type VARCHAR(32) DEFAULT '', -- 租户模块类型 tenant_module_type VARCHAR(32) DEFAULT '' -- 租户模块类型
-- 外键约束(可选,根据业务需要启用)
CONSTRAINT fk_sku_asset_id FOREIGN KEY (asset_id) REFERENCES assets_asset(id) ON DELETE CASCADE,
CONSTRAINT fk_sku_category_id FOREIGN KEY (category_id) REFERENCES assets_category(id) ON DELETE SET DEFAULT
); );
-- 索引(根据查询场景优化) -- 外键约束
ALTER TABLE assets_asset_sku ADD CONSTRAINT fk_sku_asset_id FOREIGN KEY (asset_id) REFERENCES assets_asset(id) ON DELETE CASCADE;
ALTER TABLE assets_asset_sku ADD CONSTRAINT fk_sku_category_id FOREIGN KEY (category_id) REFERENCES assets_category(id) ON DELETE SET DEFAULT;
-- 索引
CREATE INDEX idx_sku_tenant_id ON assets_asset_sku(tenant_id);
CREATE INDEX idx_sku_asset_id ON assets_asset_sku(asset_id); CREATE INDEX idx_sku_asset_id ON assets_asset_sku(asset_id);
CREATE INDEX idx_sku_category_id ON assets_asset_sku(category_id); CREATE INDEX idx_sku_category_id ON assets_asset_sku(category_id);
CREATE INDEX idx_sku_status ON assets_asset_sku(status); CREATE INDEX idx_sku_status ON assets_asset_sku(status);
CREATE INDEX idx_sku_stock_mode ON assets_asset_sku(stock_mode); CREATE INDEX idx_sku_stock_mode ON assets_asset_sku(stock_mode);
CREATE INDEX idx_sku_deleted_at ON assets_asset_sku(deleted_at); -- 软删字段索引 CREATE INDEX idx_sku_deleted_at ON assets_asset_sku(deleted_at);
CREATE INDEX idx_sku_tenant_module_type ON assets_asset_sku(tenant_module_type); CREATE INDEX idx_sku_tenant_module_type ON assets_asset_sku(tenant_module_type);
-- 表和字段注释 -- 表和字段注释
COMMENT ON TABLE assets_asset_sku IS '资产SKU表'; COMMENT ON TABLE assets_asset_sku IS '资产SKU表';
COMMENT ON COLUMN assets_asset_sku.id IS '主键ID非自增'; COMMENT ON COLUMN assets_asset_sku.id IS '主键ID非自增';
COMMENT ON COLUMN assets_asset_sku.tenant_id IS '租户ID';
COMMENT ON COLUMN assets_asset_sku.creator IS '创建人'; COMMENT ON COLUMN assets_asset_sku.creator IS '创建人';
COMMENT ON COLUMN assets_asset_sku.created_at IS '创建时间'; COMMENT ON COLUMN assets_asset_sku.created_at IS '创建时间';
COMMENT ON COLUMN assets_asset_sku.updater IS '更新人'; COMMENT ON COLUMN assets_asset_sku.updater IS '更新人';
@@ -186,7 +194,7 @@ COMMENT ON COLUMN assets_asset_sku.stock IS '库存数量';
COMMENT ON COLUMN assets_asset_sku.specs_count IS '规格数量'; COMMENT ON COLUMN assets_asset_sku.specs_count IS '规格数量';
COMMENT ON COLUMN assets_asset_sku.specs_unit IS '规格单位 SpecsUnitKeyValue'; COMMENT ON COLUMN assets_asset_sku.specs_unit IS '规格单位 SpecsUnitKeyValue';
COMMENT ON COLUMN assets_asset_sku.sort IS '排序'; COMMENT ON COLUMN assets_asset_sku.sort IS '排序';
COMMENT ON COLUMN assets_asset_sku.status IS '状态:active-启用/inactive-未启用/disabled-禁'; COMMENT ON COLUMN assets_asset_sku.status IS '状态:1启用 0停';
COMMENT ON COLUMN assets_asset_sku.stock_mode IS '库存管理模式1-明细模式 2-批次模式'; COMMENT ON COLUMN assets_asset_sku.stock_mode IS '库存管理模式1-明细模式 2-批次模式';
COMMENT ON COLUMN assets_asset_sku.category_id IS '分类ID'; COMMENT ON COLUMN assets_asset_sku.category_id IS '分类ID';
COMMENT ON COLUMN assets_asset_sku.category_path IS '分类路径'; COMMENT ON COLUMN assets_asset_sku.category_path IS '分类路径';
@@ -199,6 +207,7 @@ COMMENT ON COLUMN assets_asset_sku.tenant_module_type IS '租户模块类型';
CREATE TABLE IF NOT EXISTS assets_stock_batch ( CREATE TABLE IF NOT EXISTS assets_stock_batch (
-- 基础字段(继承 SQLBaseDO 通用字段) -- 基础字段(继承 SQLBaseDO 通用字段)
id BIGINT PRIMARY KEY, -- 主键ID非自增 id BIGINT PRIMARY KEY, -- 主键ID非自增
tenant_id BIGINT NOT NULL DEFAULT 0, -- 租户ID int8
creator VARCHAR(64) NOT NULL, creator VARCHAR(64) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL, updater VARCHAR(64) NOT NULL,
@@ -218,7 +227,7 @@ CREATE TABLE IF NOT EXISTS assets_stock_batch (
-- 状态 -- 状态
status SMALLINT NOT NULL DEFAULT 1, status SMALLINT NOT NULL DEFAULT 1,
-- 订单关联 -- 订单关联
order_id BIGINT DEFAULT 0, -- 关联订单ID如果有 order_id BIGINT DEFAULT 0, -- 关联订单ID如果有
-- 渠道分配信息 -- 渠道分配信息
@@ -231,29 +240,31 @@ CREATE TABLE IF NOT EXISTS assets_stock_batch (
production_date TIMESTAMP, -- 生产日期(可为空) production_date TIMESTAMP, -- 生产日期(可为空)
expiry_date TIMESTAMP, -- 过期日期(可为空) expiry_date TIMESTAMP, -- 过期日期(可为空)
expiry_warning_date TIMESTAMP, -- 临期预警时间(可为空) expiry_warning_date TIMESTAMP, -- 临期预警时间(可为空)
category_path VARCHAR(512) DEFAULT '', -- 分类路径 category_path VARCHAR(512) DEFAULT '' -- 分类路径
-- 外键约束(可选,根据业务需要启用)
CONSTRAINT fk_batch_asset_id FOREIGN KEY (asset_id) REFERENCES assets_asset(id) ON DELETE CASCADE,
CONSTRAINT fk_batch_asset_sku_id FOREIGN KEY (asset_sku_id) REFERENCES assets_asset_sku(id) ON DELETE CASCADE
); );
-- 索引(针对高频查询场景优化) -- 外键约束
ALTER TABLE assets_stock_batch ADD CONSTRAINT fk_batch_asset_id FOREIGN KEY (asset_id) REFERENCES assets_asset(id) ON DELETE CASCADE;
ALTER TABLE assets_stock_batch ADD CONSTRAINT fk_batch_asset_sku_id FOREIGN KEY (asset_sku_id) REFERENCES assets_asset_sku(id) ON DELETE CASCADE;
-- 索引
CREATE INDEX idx_batch_tenant_id ON assets_stock_batch(tenant_id);
CREATE INDEX idx_batch_asset_id ON assets_stock_batch(asset_id); CREATE INDEX idx_batch_asset_id ON assets_stock_batch(asset_id);
CREATE INDEX idx_batch_asset_sku_id ON assets_stock_batch(asset_sku_id); CREATE INDEX idx_batch_asset_sku_id ON assets_stock_batch(asset_sku_id);
CREATE INDEX idx_batch_batch_no ON assets_stock_batch(batch_no); -- 批次号查询索引 CREATE INDEX idx_batch_batch_no ON assets_stock_batch(batch_no);
CREATE INDEX idx_batch_status ON assets_stock_batch(status); -- 状态筛选索引 CREATE INDEX idx_batch_status ON assets_stock_batch(status);
CREATE INDEX idx_batch_order_id ON assets_stock_batch(order_id); -- 订单关联查询索引 CREATE INDEX idx_batch_order_id ON assets_stock_batch(order_id);
CREATE INDEX idx_batch_expiry_date ON assets_stock_batch(expiry_date); -- 临期/过期筛选索引 CREATE INDEX idx_batch_expiry_date ON assets_stock_batch(expiry_date);
CREATE INDEX idx_batch_assigned_channel ON assets_stock_batch(assigned_channel); -- 渠道筛选索引 CREATE INDEX idx_batch_assigned_channel ON assets_stock_batch(assigned_channel);
CREATE INDEX idx_batch_deleted_at ON assets_stock_batch(deleted_at); -- 软删字段索引 CREATE INDEX idx_batch_deleted_at ON assets_stock_batch(deleted_at);
-- 唯一索引(保证批次号+SKU唯一性避免重复批次 -- 唯一索引
CREATE UNIQUE INDEX uk_batch_sku_batch_no ON assets_stock_batch(asset_sku_id, batch_no) WHERE deleted_at IS NULL; CREATE UNIQUE INDEX uk_batch_sku_batch_no ON assets_stock_batch(asset_sku_id, batch_no) WHERE deleted_at IS NULL;
-- 表和字段注释 -- 注释
COMMENT ON TABLE assets_stock_batch IS '库存批次表(批次管理模式专用)'; COMMENT ON TABLE assets_stock_batch IS '库存批次表(批次管理模式专用)';
COMMENT ON COLUMN assets_stock_batch.id IS '主键ID非自增'; COMMENT ON COLUMN assets_stock_batch.id IS '主键ID非自增';
COMMENT ON COLUMN assets_stock_batch.tenant_id IS '租户ID';
COMMENT ON COLUMN assets_stock_batch.creator IS '创建人'; COMMENT ON COLUMN assets_stock_batch.creator IS '创建人';
COMMENT ON COLUMN assets_stock_batch.created_at IS '创建时间'; COMMENT ON COLUMN assets_stock_batch.created_at IS '创建时间';
COMMENT ON COLUMN assets_stock_batch.updater IS '更新人'; COMMENT ON COLUMN assets_stock_batch.updater IS '更新人';
@@ -283,6 +294,7 @@ COMMENT ON COLUMN assets_stock_batch.category_path IS '分类路径';
CREATE TABLE IF NOT EXISTS assets_stock_details ( CREATE TABLE IF NOT EXISTS assets_stock_details (
-- 基础字段(继承 SQLBaseDO 通用字段) -- 基础字段(继承 SQLBaseDO 通用字段)
id BIGINT PRIMARY KEY, -- 主键ID非自增单件商品独立ID适配区块链资产标识 id BIGINT PRIMARY KEY, -- 主键ID非自增单件商品独立ID适配区块链资产标识
tenant_id BIGINT NOT NULL DEFAULT 0, -- 租户ID int8
creator VARCHAR(64) NOT NULL, creator VARCHAR(64) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL, updater VARCHAR(64) NOT NULL,
@@ -303,29 +315,31 @@ CREATE TABLE IF NOT EXISTS assets_stock_details (
channel_sku VARCHAR(128) DEFAULT '', -- 渠道商品SKU channel_sku VARCHAR(128) DEFAULT '', -- 渠道商品SKU
channel_metadata JSONB DEFAULT '{}'::JSONB, -- 渠道专属数据map[string]interface{} channel_metadata JSONB DEFAULT '{}'::JSONB, -- 渠道专属数据map[string]interface{}
allocated_at TIMESTAMP, -- 分配时间(可为空) allocated_at TIMESTAMP, -- 分配时间(可为空)
category_path VARCHAR(512) DEFAULT '', -- 分类路径 category_path VARCHAR(512) DEFAULT '' -- 分类路径
-- 外键约束(可选,根据业务需要启用)
CONSTRAINT fk_details_asset_id FOREIGN KEY (asset_id) REFERENCES assets_asset(id) ON DELETE CASCADE,
CONSTRAINT fk_details_asset_sku_id FOREIGN KEY (asset_sku_id) REFERENCES assets_asset_sku(id) ON DELETE CASCADE
); );
-- 索引(针对高频查询+区块链场景优化) -- 外键约束
ALTER TABLE assets_stock_details ADD CONSTRAINT fk_details_asset_id FOREIGN KEY (asset_id) REFERENCES assets_asset(id) ON DELETE CASCADE;
ALTER TABLE assets_stock_details ADD CONSTRAINT fk_details_asset_sku_id FOREIGN KEY (asset_sku_id) REFERENCES assets_asset_sku(id) ON DELETE CASCADE;
-- 索引
CREATE INDEX idx_details_tenant_id ON assets_stock_details(tenant_id);
CREATE INDEX idx_details_asset_id ON assets_stock_details(asset_id); CREATE INDEX idx_details_asset_id ON assets_stock_details(asset_id);
CREATE INDEX idx_details_asset_sku_id ON assets_stock_details(asset_sku_id); CREATE INDEX idx_details_asset_sku_id ON assets_stock_details(asset_sku_id);
CREATE INDEX idx_details_status ON assets_stock_details(status); -- 库存状态筛选(核心查询维度) CREATE INDEX idx_details_status ON assets_stock_details(status);
CREATE INDEX idx_details_order_id ON assets_stock_details(order_id); -- 订单关联查询 CREATE INDEX idx_details_order_id ON assets_stock_details(order_id);
CREATE INDEX idx_details_lock_expire ON assets_stock_details(lock_expire); -- 锁定过期时间筛选(解锁/清理锁定库存) CREATE INDEX idx_details_lock_expire ON assets_stock_details(lock_expire);
CREATE INDEX idx_details_token_id ON assets_stock_details(token_id); -- 区块链TokenID查询核心索引 CREATE INDEX idx_details_token_id ON assets_stock_details(token_id);
CREATE INDEX idx_details_assigned_channel ON assets_stock_details(assigned_channel); -- 渠道筛选 CREATE INDEX idx_details_assigned_channel ON assets_stock_details(assigned_channel);
CREATE INDEX idx_details_deleted_at ON assets_stock_details(deleted_at); -- 软删字段索引 CREATE INDEX idx_details_deleted_at ON assets_stock_details(deleted_at);
-- 唯一索引保证区块链TokenID唯一性避免重复资产 -- 唯一索引
CREATE UNIQUE INDEX uk_details_token_id ON assets_stock_details(token_id) WHERE deleted_at IS NULL AND token_id != ''; CREATE UNIQUE INDEX uk_details_token_id ON assets_stock_details(token_id) WHERE deleted_at IS NULL AND token_id != '';
-- 表和字段注释 -- 注释
COMMENT ON TABLE assets_stock_details IS '库存明细表单件商品独立ID用于区块链虚拟资产管理'; COMMENT ON TABLE assets_stock_details IS '库存明细表单件商品独立ID用于区块链虚拟资产管理';
COMMENT ON COLUMN assets_stock_details.id IS '主键ID非自增单件商品独立唯一标识'; COMMENT ON COLUMN assets_stock_details.id IS '主键ID非自增单件商品独立唯一标识';
COMMENT ON COLUMN assets_stock_details.tenant_id IS '租户ID';
COMMENT ON COLUMN assets_stock_details.creator IS '创建人'; COMMENT ON COLUMN assets_stock_details.creator IS '创建人';
COMMENT ON COLUMN assets_stock_details.created_at IS '创建时间'; COMMENT ON COLUMN assets_stock_details.created_at IS '创建时间';
COMMENT ON COLUMN assets_stock_details.updater IS '更新人'; COMMENT ON COLUMN assets_stock_details.updater IS '更新人';