通用基础表逻辑设计(一)——配置、枚举和类别

一、配置表

        一个系统中往往有很多需要可自定义的参数,比如网站名称、联系地址等基础参数以及各种系统运行参数等等,这个时候就需要单独一个参数配置表来保存这些参数。可能最先想到的就是一个参数加一个字段,但参数的个数不一定是固定的,如此设计需要修改数据库、修改程序,可扩展性不够。所以可以把这种列设计转换为行设计,参数增减通过数据行的增减来实现。

字段名称 数据类型 属性 允许空 默认值 备注
cfg_id int (4) PK    AI     配置编号
cfg_guid char (36)     (newid()) 配置GUID
cfg_parent_guid varchar (36)     ('') 上级配置GUID,可以通过该字段实现配置分组且不限层级
cfg_code nvarchar (100)     ('') 配置编码
cfg_name nvarchar (100)     ('') 配置名称
cfg_desc nvarchar (200)     ('') 配置描述
cfg_value_type varchar (50)     ('') 配置值类型,比如integer(整数)、html(HTML)等bool(是否),不同的值类型可以通过不同的表单来显示和编辑
cfg_value nvarchar (1000)     ('') 配置值
cfg_state int (4)     (1) 配置状态(-1:已删除;0:禁用;1:启用)

表1:base_config(配置表)

 

二、枚举表

        很多时候,系统中都需要编码-名称对应的字典枚举表以记录各种编码代表什么含义,比如订单状态的编码和意义、商家和商品类型的编码和意义等等,此时我们就需要一个专门的字典枚举表来保存这些信息。也可以这些信息读入缓存直接获取对应字段编码的含义,从而减少表间连接。

字段名称 数据类型 属性 允许空 默认值 备注
enum_id int (4) PK    AI     枚举编号
enum_guid char (36)     (newid()) 枚举GUID
enum_parent_guid varchar (36)     ('') 上级枚举编号GUID,可以通过该字段实现枚举分组且不限层级
enum_code varchar (50)     ('') 枚举编码
enum_value int (4)     (0) 枚举值
enum_name nvarchar (100)     ('') 枚举名称
enum_desc nvarchar (100)     ('') 枚举描述
enum_state int (4)     (1) 枚举状态(-1:已删除;0:禁用;1:启用)

表2:base_enum(枚举表)

 

三、类别表

        另外,商家有类别(比如餐饮、娱乐等)、商品有类别(抢购、精选等),这些类别信息同样可以抽象整合到类别表。

字段名称 数据类型 属性 允许空 默认值 备注
cat_id bigint (8) PK    AI     类别编号
cat_guid char (36)     (newid()) 类别GUID
cat_parent_guid varchar (36)     ('') 上级类别GUID,可以通过该字段实现类别分组且不限层级
cat_name nvarchar (100)     ('') 类别名称
cat_key nvarchar (100)     ('') 类别关键字
cat_desc nvarchar (200)     ('') 类别描述
cat_state int (4)     (1) 类别状态(-1:已删除;0:禁用;1:启用)
cat_order int (4)     (0) 类别序号
cat_detail nvarchar (-1)     ('') 类别简介

表3:base_category(类别表)

 

四、总结

        现实中有各种不同的数据,把这些数据信息化后,在信息系统中可以抽象整合成各种类型的业务模型,最后具体化到数据库的设计,由数据表等对象来体现。分析问题解决问题的能力,就包括数据的收集、归纳、分析和综合,在形成具体数据表的设计时,应考虑到当下既定的事实和未来可能的变化,通过可扩展、可定制的设计来应对变化频繁的现实需求。

posted @ 2017-11-03 13:39  竹林之风  阅读(1316)  评论(0编辑  收藏  举报