236 lines
11 KiB
Transact-SQL
236 lines
11 KiB
Transact-SQL
/* ============================================================================
|
||
FMS 新系统业务表建表脚本 — 往来单位(合作伙伴)
|
||
依据文档:FMS业务表设计.md
|
||
|
||
使用说明:
|
||
1. 执行前先切换到目标数据库(USE [数据库名])。
|
||
2. 脚本只建表、索引和查询视图,不含初始化数据和迁移数据。
|
||
3. 不使用外键、CHECK、触发器;关联完整性和业务校验由业务层处理。
|
||
4. 表已存在时先用「重建」段落删除旧对象,再执行建表段落。
|
||
============================================================================ */
|
||
|
||
SET NOCOUNT ON;
|
||
GO
|
||
|
||
/* ============================================================================
|
||
重建(仅旧结构需要重建时执行,会删除这些表及其数据)
|
||
============================================================================ */
|
||
|
||
drop view if exists dbo.v_b_othercompany;
|
||
GO
|
||
|
||
drop table if exists dbo.b_othercompany_accountbank;
|
||
GO
|
||
|
||
drop table if exists dbo.b_othercompany_bmfl;
|
||
GO
|
||
|
||
drop table if exists dbo.b_othercompany_partner_type;
|
||
GO
|
||
|
||
drop table if exists dbo.b_othercompany;
|
||
GO
|
||
|
||
drop table if exists dbo.b_grade;
|
||
GO
|
||
|
||
drop table if exists dbo.b_from;
|
||
GO
|
||
|
||
/* ============================================================================
|
||
主表
|
||
============================================================================ */
|
||
|
||
create table dbo.b_othercompany (
|
||
b_id bigint not null primary key, -- 主键(雪花)
|
||
b_ywid varchar(50) not null, -- 业务ID
|
||
b_pycode nvarchar(50) null, -- 助记码
|
||
b_type varchar(200) null, -- 伙伴类型(多值,逗号分隔)
|
||
b_name nvarchar(500) null, -- 名称
|
||
b_shortname nvarchar(50) null, -- 简称
|
||
b_linkman nvarchar(200) null, -- 主联系人
|
||
b_phone nvarchar(500) null, -- 电话
|
||
b_addr nvarchar(500) null, -- 详细地址
|
||
b_firstlinkdate datetime null, -- 首次联系
|
||
b_htno varchar(50) null, -- 合同号
|
||
b_htdate date null, -- 签订日期
|
||
b_htexpiredate date null, -- 到期日期
|
||
b_black tinyint not null default 0, -- 黑名单(0/1)
|
||
b_canuse tinyint not null default 0, -- 开通自助(0/1)
|
||
b_zl int null, -- 帐龄天数
|
||
b_tel nvarchar(50) null, -- 电话
|
||
b_fax nvarchar(500) null, -- 传真
|
||
b_www varchar(50) null, -- 网址
|
||
b_email varchar(50) null, -- 邮件
|
||
b_bankacount nvarchar(500) null, -- 银行账号
|
||
b_invaccount nvarchar(500) null, -- 开票信息
|
||
b_cate_id varchar(150) null, -- 分类树节点编码
|
||
b_bz1 nvarchar(500) null, -- 备注1
|
||
b_bz2 nvarchar(500) null, -- 备注2
|
||
b_bz3 nvarchar(500) null, -- 备注3
|
||
b_bz4 nvarchar(500) null, -- 备注4
|
||
b_province nvarchar(50) null, -- 省
|
||
b_city nvarchar(50) null, -- 市
|
||
b_area nvarchar(50) null, -- 区
|
||
b_country nvarchar(50) null, -- 国家
|
||
b_edicode varchar(50) null, -- EDI 代码
|
||
b_showcolor int null, -- 显示颜色
|
||
b_type_id nvarchar(200) null, -- 客户级别
|
||
b_from_id nvarchar(50) null, -- 客户来源
|
||
b_type1_id nvarchar(50) null,
|
||
b_type2_id nvarchar(50) null,
|
||
b_type3_id nvarchar(50) null,
|
||
b_type4_id nvarchar(50) null,
|
||
b_type5_id nvarchar(50) null,
|
||
b_owner_id varchar(50) null, -- 业务员
|
||
b_created_by varchar(50) null, -- 创建人
|
||
b_created_at datetime2 null, -- 创建时间
|
||
b_updated_by varchar(50) null, -- 最后修改人
|
||
b_updated_at datetime2 null, -- 最后修改时间
|
||
b_password varchar(50) null, -- 自助登录密码
|
||
b_state nvarchar(50) null, -- 审核状态
|
||
b_bankacount_e varchar(500) null, -- 英文账号
|
||
b_addr_e varchar(500) null, -- 英文地址
|
||
b_name_e nvarchar(500) null -- 英文名称
|
||
);
|
||
GO
|
||
|
||
create unique index ux_b_othercompany_ywid on dbo.b_othercompany (b_ywid);
|
||
GO
|
||
|
||
create index ix_b_othercompany_cate on dbo.b_othercompany (b_cate_id, b_canuse, b_id);
|
||
GO
|
||
|
||
create index ix_b_othercompany_name on dbo.b_othercompany (b_name, b_canuse, b_id);
|
||
GO
|
||
|
||
/* ============================================================================
|
||
伙伴类型字典
|
||
============================================================================ */
|
||
|
||
create table dbo.b_othercompany_partner_type (
|
||
b_id varchar(50) not null primary key, -- 类型编码
|
||
b_name nvarchar(50) null, -- 类型名称
|
||
b_i18n varchar(150) null, -- 多语言资源键
|
||
b_canuse tinyint not null default 1, -- 是否启用(0/1)
|
||
b_xh int not null default 0, -- 显示顺序
|
||
b_bz nvarchar(50) null, -- 备注
|
||
b_created_by varchar(50) null,
|
||
b_created_at datetime2 null,
|
||
b_updated_by varchar(50) null,
|
||
b_updated_at datetime2 null
|
||
);
|
||
GO
|
||
|
||
/* ============================================================================
|
||
分类树
|
||
============================================================================ */
|
||
|
||
create table dbo.b_othercompany_bmfl (
|
||
b_id varchar(150) not null primary key, -- 节点编码(创建后不可改)
|
||
b_parent_id varchar(150) null, -- 父节点编码,NULL 表示根节点
|
||
b_depth int not null default 0, -- 树层级,根节点为 0
|
||
b_path varchar(1000) not null, -- 根到当前节点的路径,例如 /dl/dl_NOVCC/
|
||
b_name nvarchar(200) not null, -- 节点名称
|
||
b_i18n varchar(150) null, -- 多语言资源键
|
||
b_canuse tinyint not null default 1, -- 是否启用(0/1)
|
||
b_xh int not null default 0, -- 同级显示顺序
|
||
b_created_by varchar(50) null,
|
||
b_created_at datetime2 null,
|
||
b_updated_by varchar(50) null,
|
||
b_updated_at datetime2 null
|
||
);
|
||
GO
|
||
|
||
create index ix_b_othercompany_bmfl_parent
|
||
on dbo.b_othercompany_bmfl (b_parent_id, b_canuse, b_depth, b_xh, b_id);
|
||
GO
|
||
|
||
create index ix_b_othercompany_bmfl_path
|
||
on dbo.b_othercompany_bmfl (b_path, b_canuse, b_id);
|
||
GO
|
||
|
||
/* ============================================================================
|
||
客户级别字典
|
||
============================================================================ */
|
||
|
||
create table dbo.b_grade (
|
||
b_id bigint not null primary key, -- 主键(雪花)
|
||
b_name nvarchar(50) null, -- 级别名称
|
||
b_i18n varchar(150) null, -- 多语言资源键
|
||
b_canuse tinyint not null default 1, -- 是否启用(0/1)
|
||
b_xh int not null default 0, -- 显示顺序
|
||
b_bz nvarchar(50) null, -- 备注
|
||
b_created_by varchar(50) null,
|
||
b_created_at datetime2 null,
|
||
b_updated_by varchar(50) null,
|
||
b_updated_at datetime2 null
|
||
);
|
||
GO
|
||
|
||
/* ============================================================================
|
||
客户来源字典
|
||
============================================================================ */
|
||
|
||
create table dbo.b_from (
|
||
b_id bigint not null primary key, -- 主键(雪花)
|
||
b_name nvarchar(50) null, -- 来源名称
|
||
b_i18n varchar(150) null, -- 多语言资源键
|
||
b_canuse tinyint not null default 1, -- 是否启用(0/1)
|
||
b_xh int not null default 0, -- 显示顺序
|
||
b_bz nvarchar(50) null, -- 备注
|
||
b_created_by varchar(50) null,
|
||
b_created_at datetime2 null,
|
||
b_updated_by varchar(50) null,
|
||
b_updated_at datetime2 null
|
||
);
|
||
GO
|
||
|
||
/* ============================================================================
|
||
银行账号明细子表
|
||
============================================================================ */
|
||
|
||
create table dbo.b_othercompany_accountbank (
|
||
subid bigint not null primary key, -- 主键(雪花)
|
||
mx_xh int null, -- 序号
|
||
father bigint null, -- 主表 b_othercompany.b_id
|
||
mx_bank nvarchar(800) null, -- 银行信息
|
||
mx_bz1 nvarchar(200) null, -- 备注
|
||
mx_created_by varchar(50) null,
|
||
mx_created_at datetime2 null,
|
||
mx_updated_by varchar(50) null,
|
||
mx_updated_at datetime2 null
|
||
);
|
||
GO
|
||
|
||
create index ix_b_othercompany_accountbank_father
|
||
on dbo.b_othercompany_accountbank (father, mx_xh, subid);
|
||
GO
|
||
|
||
/* ============================================================================
|
||
查询视图
|
||
|
||
用途:作为 s_module.b_view_table 的数据源。列表查询直接 select ... from 该视图,
|
||
s_field.b_field 必须是视图里真实存在的列。
|
||
说明:视图只供查询,写库仍走 s_module.b_save_table = b_othercompany。
|
||
============================================================================ */
|
||
|
||
create or alter view dbo.v_b_othercompany as
|
||
select o.b_id, o.b_ywid, o.b_pycode, o.b_type, o.b_name, o.b_shortname,
|
||
o.b_linkman, o.b_phone, o.b_addr, o.b_firstlinkdate,
|
||
o.b_htno, o.b_htdate, o.b_htexpiredate, o.b_black, o.b_canuse,
|
||
o.b_zl, o.b_tel, o.b_fax, o.b_www, o.b_email,
|
||
o.b_bankacount, o.b_invaccount, o.b_cate_id,
|
||
o.b_bz1, o.b_bz2, o.b_bz3, o.b_bz4,
|
||
o.b_province, o.b_city, o.b_area, o.b_country,
|
||
o.b_edicode, o.b_showcolor, o.b_type_id, o.b_from_id,
|
||
o.b_type1_id, o.b_type2_id, o.b_type3_id, o.b_type4_id, o.b_type5_id,
|
||
o.b_owner_id, o.b_created_by, o.b_created_at,
|
||
o.b_updated_by, o.b_updated_at,
|
||
o.b_password, o.b_state,
|
||
o.b_bankacount_e, o.b_addr_e, o.b_name_e,
|
||
u.b_name as v_ownername -- 业务员姓名
|
||
from dbo.b_othercompany o
|
||
left join dbo.b_user u on u.b_id = o.b_owner_id;
|
||
GO
|