1 数据库设计 数据库表结构的设计在每一个开发项目中都是非常重要的一个部分,数据库表设计的好坏直接关系到开发过程中代码实现的功能强大与否,是否包含齐备客户所需求的功能。因此现在来介绍该模块所用到的数据库表的详细设计: 1.1 表名定义 表1 表名定义 序号 | 表参数名 | 表名说明 | 1 | FSPTB_MEMBER | 记录会员基本信息 | 2 | FSPTB_POINT | 记录积分卡基本信息 | 3 | FSPTB_TENPO | 记录店铺基本信息 | 4 | FSPTB_MEMBER_STATUS | 记录会员状态信息 | 5 | FSPTB_POS_TORIHIKI_KARI | 临时记录交易数据 | 6 | FSPTB_POINT_RIREKI | 记录积分履历 | 7 | FSPTB_POINT_JNL | 记录积分日志 | 8 | FSPTB_POS_ITEM | 记录交易项目累计数据 | 9 | FSPTB_RIYU | 记录积分变更原因 | 1.2 数据库表设计 1)FSPTB_MEMBER(会员) 表2 会员数据表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | ◎ | MEMBER_CODE | 会员编码 | Char | 13 | NOT NULL | | NYUKAI_YMD | 入会年月日 | Char | 8 | NULL | | SHIMEI_KANA_S | 日语假名性 | Char | 16 | NOT NULL | | SHIMEI_KANA_N | 日语假名名 | Char | 16 | NOT NULL | | SHIMEI_KANJI_S | 中文姓 | Char | 32 | NOT NULL | | SHIMEI_KANJI_N | 中文名 | Char | 32 | NOT NULL | | TEL_SHIGAI_1 | 电话1(市外) | Char | 8 | NOT NULL | | TEL_SHINAI_1 | 电话1(市内) | Char | 8 | NOT NULL | | TEL_BANGO_1 | 电话1(其它) | Char | 8 | NOT NULL | | TEL_SHIGAI_2 | 电话2(市外) | Char | 8 | NOT NULL | | TEL_SHINAI_2 | 电话2(市内) | Char | 8 | NOT NULL | | TEL_BANGO_2 | 电话3(其它) | Char | 8 | NOT NULL | | TEL_SHIGAI_3 | 电话3(市外) | Char | 8 | NOT NULL | | TEL_SHINAI_3 | 电话3(市内) | Char | 8 | NOT NULL | | TEL_BANGO_3 | 电话3(其它) | Char | 8 | NOT NULL | | BIRTH_DAY | 出生年月日 | Char | 8 | NULL | | MEMBER_KBN | 会员种类 | Char | 1 | NULL | | FM_KBN | 性别 | Char | 1 | NULL | | MEMBER_ZIP | 邮政编码 | Char | 8 | NOT NULL | | ADDR_1 | 地址1 | Char | 32 | NOT NULL | | ADDR_2 | 地址2 | Char | 48 | NOT NULL | | ADDR_3 | 地址3 | Char | 48 | NOT NULL | | ADDR_4 | 地址4 | Char | 48 | NOT NULL | | NYUKAI_TENPO | 入会的店铺编码 | Char | 6 | NULL | | MUKOU_KBN | 起效种类 | Char | 1 | NULL | | HOLD_CODE | 家庭所属代码 | Char | 13 | NULL | | ADD_YMDHMS | 注册时间 | Char | 14 | NULL | | ADD_TANTOU | 注册负责人ID | Char | 6 | NULL | | UPD_YMDHMS | 更新时间 | Char | 14 | NULL | | UPD_TANTOU | 更新负责人ID | Char | 6 | NULL | 2)FSPTB_POINT(积分) 表3 积分数据表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | ◎ | MEMBER_CODE | 会员编码 | Char | 13 | NOT NULL | | OLD_MEMBER_CODE | 旧会员编码 | Char | 13 | NULL | | YUTAI_RANK | 优惠等级 | Char | 2 | NULL | | NOW_POINT | 现在积分点 | 9 | 8 | NULL | | RUIKEI_POINT | 累计积分点 | 9 | 8 | NULL | | OUT_RUIKEI_POINT | 支出的累计积分点 | 9 | 8 | NULL | | ADD_RUIKEI_POINT | 增加的累计积分点 | 9 | 8 | NULL | | KIHON_RUIKEI_POINT | 基本累计积分点 | 9 | 8 | NULL | | BONUS_RUIKEI_POINT | 奖励累计积分点 | 9 | 8 | NULL | | KAIAGE_R | 最后交易时间 | Char | 8 | NULL | | TUKI_KAIAGE_M | 每月交易金额 | 9 | 10 | NULL | | BEFORE_TUKI_KAIAGE_M | 上上月交易金额 | 9 | 10 | NULL | | KAIAGE_F | 交易次数 | 9 | 5 | NULL | | KAIAGE_M | 交易金额 | 9 | 10 | NULL | | MEMBER_WARIBIKI_M | 打折累计金额 | 9 | 10 | NULL | | KOUNYU_M | 购买金额 | 9 | 10 | NULL | | MUKOU_KBN | 起效种类 | Char | 1 | NULL | | ADD_YMDHMS | 登陆时间 | Char | 14 | NULL | | ADD_TANTOU | 登陆负责人ID | Char | 6 | NULL | | UPD_YMDHMS | 更新时间 | Char | 14 | NULL | | UPD_TANTOU | 更新负责人ID | Char | 6 | NULL | | SYSTEM_UPD_YMDHMS | 系统更新时间 | Char | 14 | NULL | 3)PSPTB_TENPO(店铺) 表4 店铺数据表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | ◎ | TENPO_CODE | 店铺编码 | Char | 6 | NOT NULL | | TENPO_KANA | 日语名称 | Char | 20 | NULL | | TENPO_KANJI | 中文名称 | Char | 30 | NULL | | DOMINANT_CODE | 优先级别编码 | Char | 3 | NULL | | TENPO_ZIP | 邮政编码 | Char | 7 | NULL | | TENPO_ADDR | 地址 | Char | 100 | NULL | | TENCYO_MEI | 店长名 | Char | 20 | NULL | | TENPO_TEL_SHIGAI | 电话(市外) | Char | 5 | NULL | | TENPO_TEL_SHINAI | 电话(市内) | Char | 4 | NULL | | TENPO_TEL_BANGO | 电话(其它) | Char | 4 | NULL | | UPD_YMDHMS | 更新时间 | Char | 14 | NULL | | UPD_TANTOU | 更新负责人ID | Char | 6 | NULL | 4)FSPTB_MEMBER_STATUS(会员状态) 表5 会员状态表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | ◎ | MEMBER_CODE | 会员编码 | Char | 13 | NOT NULL | | OLD_MEMBER_CODE | 旧会员编码 | Char | 13 | NULL | | DOMINANT_CODE | 优先级别编码 | Char | 3 | NOT NULL | | TENPO_CODE | 店铺号码 | Char | 6 | NOT NULL | | OLD_DOMINANT_CODE | 旧优先级别编码 | Char | 3 | NOT NULL | | OLD_TENPO_CODE | 旧店铺编码 | Char | 6 | NOT NULL | | UPD_KBN | 更新种类 | Char | 1 | NULL | | MSTS_AUTO_ID | 记录番号 | Numeric | 15 | NULL | 5)FSPTB_POS_TORIHIKI_KARI(临时交易信息) 表6 临时交易信息表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | | TENPO_CODE | 店铺号码 | char | 6 | NOT NULL | | POS_NO | 终端机号码 | char | 6 | NOT NULL | | TORIHIKI_NO | 交易编号 | char | 6 | NOT NULL | | TORIHIKI_YMD | 交易日期(年月日) | char | 8 | NOT NULL | | TORIHIKI_HH | 交易时间(小时) | char | 2 | NOT NULL | | TORIHIKI_MM | 交易时间(分钟) | char | 2 | NOT NULL | | MEMBER_CODE | 会员编码 | char | 13 | NOT NULL | | POINTO_SBT | 积分种类 | char | 2 | NULL | | STATUS | 状况 | char | 2 | NULL | | POINT | 本次积分 | Numeric | 9 | NULL | | ALL_POINT | 总积分 | Numeric | 9 | NULL | | NET_URIAGE_M | 销售金额 | Numeric | 9 | NULL | | URIAGA_TENSU | 销售点数 | Numeric | 7 | NULL | | ALL_URIAGE_M | 总销售金额(含税) | Numeric | 9 | NULL | | POINT_M | 积分对象金额 | Numeric | 9 | NULL | | POINT_RM | 积分基本金额 | Numeric | 4 | NULL | | POINT_RIT | 积分倍率 | Numeric | 2 | NULL | | SEKININ_NO | 责任人编号 | char | 6 | NULL | | TANTOU_NO | 审查人编号 | char | 6 | NULL | | CARD_RIYOSU | 积分卡使用回数 | Numeric | 7 | NULL | | YUTAI_RANK | 优惠等级 | char | 2 | NULL | | YUTAI_BAIRIT | 优惠倍率 | char | 2 | NULL | | HENPIN_KBN | 退货交易 | char | 1 | NOT NULL | ◎ | TORIHIKIK_AUTO_ID | 记录自动编号 | Int | 4 | NOT NULL | 6)FSPTB_POINT_RIREKI(积分履历表) 表7 积分履历表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | ◎ | MEMBER_CODE | 会员编号 | char | 13 | NOT NULL | ◎ | YMD | 日期 | char | 8 | NOT NULL | | YUTAI_RANK | 优惠等级 | char | 2 | NULL | | KIHON_POINT | 当日基本积分 | Numeric | 9 | NULL | | BONUS_POINT | 当日奖励积分 | Numeric | 6 | NULL | | ADD_POINT | 当日增加积分 | Numeric | 6 | NULL | | OUT_POINT | 当日输出积分 | Numeric | 6 | NULL | | NOW_POINT | 现在积分 | Numeric | 8 | NULL | | UPD_YMDHMS | 更新时间 | char | 14 | NULL | | UPD_TANTOU | 操作者编号 | char | 6 | NULL | 7)FSPTB_POINT_JNL(积分日志表) 表8 积分日志表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | | TENPO_CODE | 店铺号码 | char | 6 | NOT NULL | | MEMBER_CODE | 会员编码 | char | 13 | NOT NULL | | CLIENT_NO | 终端机编号 | char | 8 | NULL | | ADD_POINT_B | 当日增加积分(更新前) | Numeric | 6 | NULL | | OUT_POINT_B | 当日消费积分(更新前) | Numeric | 6 | NULL | | NOW_POINT_B | 现在积分(更新前) | Numeric | 8 | NULL | | BONUS_POINT_B | 当日奖励积分(更新前) | Numeric | 8 | NULL | | OUT_KAIAGE_M_B | 当日消费金额(更新前) | Numeric | 10 | NULL | | ADD_KAIAGE_M_B | 当日增加金额(更新前) | Numeric | 10 | NULL | | TUKI_KAIAGE_M_B | 当月消费金额(更新前) | Numeric | 10 | NULL | | ADD_POINT_A | 当日增加积分(更新后) | Numeric | 6 | NULL | | ADD_RIYU_CODE | 增加理由编号 | char | 2 | NULL | | OUT_POINT_A | 当日消费积分(更新后) | Numeric | 6 | NULL | | OUT_RIYU_CODE | 消费理由编号 | char | 2 | NULL | | NOW_POINT_A | 现在积分(更新后) | Numeric | 8 | NULL | | BONUS_POINT_A | 当日奖励积分(更新后) | Numeric | 8 | NULL | | OUT_KAIAGE_M_A | 当日消费金额(更新后) | Numeric | 10 | NULL | | ADD_KAIAGE_M_A | 当日增加金额(更新后) | Numeric | 10 | NULL | | TUKI_KAIAGE_M_A | 当月消费金额(更新后) | Numeric | 10 | NULL | | KURIKOSHI_POINT | 转入积分 | Numeric | 8 | NULL | | TODAY_POINT | 本日最终积分 | Numeric | 8 | NULL | | UPD_YMDHMS | 更新时间 | char | 14 | NULL | | UPD_TANTOU | 担当者编号 | char | 6 | NULL | ◎ | JNL_AUTO_ID | 记录自动编号 | Int | 4 | NOT NULL | 8)FSPTB_POS_ITEM(POS交易项目蓄积表) 表9 POS交易项目蓄积表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | | TENPO_CODE | 店铺号码 | char | 6 | NOT NULL | | POS_NO | 终端机号码 | char | 6 | NOT NULL | | TORIHIKI_NO | 交易号码 | char | 6 | NOT NULL | | TORIHIKI_YMD | 交易日期(年月日) | char | 8 | NOT NULL | | TORIHIKI_HH | 交易时间(小时) | char | 2 | NOT NULL | | TORIHIKI_MM | 交易时间(分钟) | char | 2 | NOT NULL | | MEMBER_CODE | 会员编码 | char | 13 | NOT NULL | | LINK_GP_CODE | 连接分组代码 | char | 6 | NULL | | LINK_BMN_CODE | 部门号码 | char | 6 | NULL | | MEMBER_FLG | 会员价识别标志 | char | 1 | NULL | | JAN_CODE | 标签编号 | char | 13 | NOT NULL | | SYOHIN_KANJI | 汉字商品名 | varchar2 | 40 | NULL | | KAIAGE_TENSU | 消费点数 | Numeric | 3 | NULL | | KAIAGE_M | 消费金额(含税) | Numeric | 7 | NULL | | NEBIKI_M | 折扣额(合计) | Numeric | 7 | NULL | | HENPIN_TORIHIKI | 退货交易 | char | 1 | NULL | | NOW_BAIKA | 通常价格(现在卖价) | Numeric | 6 | NULL | | TEIBAN_TANKA | 通常加额(定价) | Numeric | 6 | NULL | | MEMBER_TANKA | 会员价格(单价) | Numeric | 6 | NULL | | ITEM_NBK_M | 项目折扣额 | Numeric | 6 | NULL | | ITEM_WBK_M | 项目降价额 | Numeric | 6 | NULL | | NBK_ABN_M | 小计折扣分配额 | Numeric | 6 | NULL | | WBK_ABN_M | 小计降价分配额 | Numeric | 6 | NULL | | MMNBK_ABN_M | M&M折扣分配额 | Numeric | 6 | NULL | ◎ | ITEM_AUTO_ID | 记录自动编号 | Int | 4 | NOT NULL | 9)FSPTB_RIYU(原因表) 表10 原因表 主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 | ◎ | RIYU_KBN | 原因区分 | char | 1 | NOT NULL | ◎ | RIYU_CODE | 原因编号 | char | 2 | NOT NULL | | HYOUJI_KUBUN | 表示区分 | char | 1 | NULL | | RIYU | 理由 | varchar2 | 40 | NULL | | ADD_YMDHS | 登录日期 | char | 14 | NULL | 2 功能实现关键代码 模块功能实现的操作可以归结为三类:使用共通函数,操作数据库表和操作文件。具体实现过程如下: 2.1 使用共通函数 这里的共通函数是各个模块都需要使用到的函数。它主要包括两大功能: 一是取得共通文件(INI文件),二是对数据库进行操作。 7.1.1共通文件INI的取得 这里的共通文件是指多个模块都需要使用到的文件Common.ini,它存放的是各个文件的存放路径。INI文件检查代码实现如下: IniConfig Conf =new IniConfig(); StreamWriter sw; sw=new StreamWriter(Conf.LogFile,true,System.Text.Encoding.Default); if(Conf.ErrorString=="1") //当INI文件不存在时的处理 { sw.WriteLine(DateTime.Now+" FSP.INI CHECK "+" FSP.INIアクセスエラー "+" 処理=FSPB1120"); sw.Flush(); sw.Close(); mesg="FSP.INIアクセスエラー"; return mesg; } else if(Conf.ErrorString=="2") //当INI文件打不开时的处理 { sw.WriteLine(DateTime.Now+" FSP.INI CHECK "+" FSP.INIアクセスエラー "+" 処理=FSPB1120"); sw.Flush(); sw.Close(); mesg="INIファイルがオープンできない"; return mesg; } else if(Conf.ErrorString=="3") //当INI文件不完整时的处理 { sw.WriteLine(DateTime.Now+" FSP.INI CHECK "+" FSP.INI設定エラー "+" 処理=FSPB1120"); sw.Flush(); sw.Close(); mesg="INIファイル中にはセクション名、キー名、内容(値)が存在しない"; return mesg; } Else //INI文件正确时的处理 { sw.WriteLine(DateTime.Now+" FSP.INI CHECK "+" メンバーマスタメンテデータファイル作成開始 "+" 処理=FSPB1120"); sw.Flush(); sw.Close(); } |