简介:本文深入解析金蝶K3数据库核心表名对应关系及功能说明,涵盖财务、供应链、生产模块表结构,提供表间关联逻辑与实用查询建议,助力开发者高效掌握系统数据模型。
金蝶K3作为企业级ERP系统,其数据库表结构是系统功能实现的核心基础。开发者在二次开发、数据迁移或故障排查时,需精准理解表名与业务功能的对应关系。本文系统梳理K3数据库核心表分类、命名规则及关联逻辑,结合实际业务场景提供可操作的查询建议,帮助读者快速定位目标表并理解其数据含义。
K3数据库表名采用”模块缩写+业务类型”的命名模式,常见前缀包括:
示例:T_BD_Material表示基础资料-物料表,ICStockBillEntry表示存货单据明细表。
这种命名规则使表功能一目了然,例如SOOrder与SOOrderEntry通过FInterID字段关联,形成订单主从表结构。
FDate(凭证日期)、FNumber(凭证号)、FAmount(金额)GLVchEntry(凭证分录表)、GLVchData(历史凭证表)FNumber(科目编码)、FName(科目名称)、FDetail(是否明细科目)FContactID关联供应商表T_BD_SupplierSELECT * FROM ARReceiveBill WHERE FBillNo LIKE 'AR%'FDate(订单日期)、FSupplierID(供应商ID)、FAmount(订单金额)POOrderEntry(订单明细表)、POPriceList(价格清单表)FSourceBillNo关联POOrder.FBillNoFDeliveryDate(要求交货日期)、FSaleStyle(销售方式)FSourceInterID指向SOOrder.FInterIDFWorkShopID(车间ID)、FProductID(产品ID)、FPlanStartDate(计划开工日期)FInterID与SEOrder关联,包含FMaterialID(物料ID)、FQuantity(数量)以采购订单为例,查询订单及明细的SQL示例:
SELECTa.FBillNo AS 订单编号,a.FDate AS 订单日期,b.FMaterialID AS 物料ID,b.FQuantity AS 数量,c.FName AS 物料名称FROMPOOrder aJOINPOOrderEntry b ON a.FInterID = b.FInterIDJOINT_BD_Material c ON b.FMaterialID = c.FIDWHEREa.FBillNo = 'PO20230001'
查询销售订单对应的出库单状态:
SELECTa.FBillNo AS 销售订单号,b.FBillNo AS 出库单号,b.FStatus AS 出库状态FROMSOOrder aJOINSODelivery b ON a.FInterID = b.FSourceInterIDWHEREa.FCustomerID = (SELECT FID FROM T_BD_Customer WHERE FNumber = 'CUST001')
SELECT INTO创建备份表FBillNo、FDate)应确保有索引
BEGIN TRANSACTION;UPDATE POOrder SET FStatus = 3 WHERE FInterID = 1001;UPDATE POOrderEntry SET FChecked = 1 WHERE FInterID = 1001;COMMIT TRANSACTION;
SysLog可追踪用户操作,字段FOperationType区分操作类型通过组合GLVch和GLVchEntry可生成自定义财务报表:
CREATE VIEW CustomReport ASSELECTa.FDate AS 日期,c.FName AS 科目名称,SUM(b.FDebit) AS 借方金额,SUM(b.FCredit) AS 贷方金额FROMGLVch aJOINGLVchEntry b ON a.FInterID = b.FInterIDJOINGLAccount c ON b.FAccountID = c.FIDGROUP BYa.FDate, c.FName
迁移采购订单数据时需同步主从表:
-- 1. 迁移主表INSERT INTO POOrder_NewSELECT * FROM POOrder WHERE FDate BETWEEN '2023-01-01' AND '2023-12-31';-- 2. 获取新表ID映射DECLARE @IDMap TABLE (OldID INT, NewID INT);INSERT INTO @IDMapSELECT Old.FInterID, New.FInterIDFROM POOrder OldJOIN POOrder_New New ON Old.FBillNo = New.FBillNo;-- 3. 迁移明细表INSERT INTO POOrderEntry_NewSELECTb.FEntryID,m.NewID AS FInterID,b.FMaterialID,b.FQuantityFROMPOOrderEntry bJOIN@IDMap m ON b.FInterID = m.OldID;
掌握金蝶K3数据库表结构是进行深度系统开发的基础。本文通过模块化分类、关联逻辑解析和实战SQL示例,为开发者提供了系统化的表名对应指南。建议读者结合实际业务场景,通过SELECT TOP 10 * FROM 表名快速熟悉表结构,逐步构建完整的K3数据模型认知体系。未来可进一步探索表触发器、存储过程等高级特性,实现更复杂的业务逻辑自动化。