当前位置:首页 > 技术积累 > 正文内容

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

竹林之风7年前 (2017-10-30)技术积累3340

一、配置表

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


字段名称数据类型属性允许空默认值备注
cfg_idint (4)PK    AI

配置编号
cfg_guidchar (36)

(newid())配置GUID
cfg_parent_guidvarchar (36)

('')上级配置GUID,可以通过该字段实现配置分组且不限层级
cfg_codenvarchar (100)

('')配置编码
cfg_namenvarchar (100)

('')配置名称
cfg_descnvarchar (200)

('')配置描述
cfg_value_typevarchar (50)

('')配置值类型,比如integer(整数)、html(HTML)等bool(是否),不同的值类型可以通过不同的表单来显示和编辑
cfg_valuenvarchar (1000)

('')配置值
cfg_stateint (4)

(1)配置状态(-1:已删除;0:禁用;1:启用)

表1:base_config(配置表)



二、枚举表

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

字段名称数据类型属性允许空默认值备注
enum_idint (4)PK    AI

枚举编号
enum_guidchar (36)

(newid())枚举GUID
enum_parent_guidvarchar (36)

('')上级枚举编号GUID,可以通过该字段实现枚举分组且不限层级
enum_codevarchar (50)

('')枚举编码
enum_valueint (4)

(0)枚举值
enum_namenvarchar (100)

('')枚举名称
enum_descnvarchar (100)

('')枚举描述
enum_stateint (4)

(1)枚举状态(-1:已删除;0:禁用;1:启用)

表2:base_enum(枚举表)


三、类别表

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

字段名称数据类型属性允许空默认值备注
cat_idbigint (8)PK    AI

类别编号
cat_guidchar (36)

(newid())类别GUID
cat_parent_guidvarchar (36)

('')上级类别GUID,可以通过该字段实现类别分组且不限层级
cat_namenvarchar (100)

('')类别名称
cat_keynvarchar (100)

('')类别关键字
cat_descnvarchar (200)

('')类别描述
cat_stateint (4)

(1)类别状态(-1:已删除;0:禁用;1:启用)
cat_orderint (4)

(0)类别序号
cat_detailnvarchar (-1)

('')类别简介

表3:base_category(类别表)


四、总结

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


扫描二维码推送至手机访问。

版权声明:本文由久爱编程网发布,如需转载请注明出处。

本文链接:https://www.9icode.com/index.php/post/27.html

标签: 数据库
分享给朋友:

相关文章

云平台多租户系统的设计方案

云平台多租户系统的设计方案

        多租户(Multi Tenancy)是指在一个云平台上,多个不同的客户共用相同的平台和架构但又相互独立并对各自的用户提供服务。多租户相同有4个特...

在ASP.NET Core下使用Scaffold-DbContext命令自动从数据库生成EF Core模型

在ASP.NET Core下使用Scaffold-DbContext命令自动从数据库生成EF Core模型

        在ASP.NET Core下使用EF Core读取和操作数据库时,若采用DB First开发模式,则需要手动写或者自动生成相关实体类和DBCon...

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常时,其中一个原因是:在已经重定向后又重定向。在ASP.NET中实现重定向有以下几...

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常,是因为设置Response的StatusCode之前,程序已设置响应标头。可从以...

ASP.NET网站自定义错误处理及其它安全相关

ASP.NET网站自定义错误处理及其它安全相关

        ASP.NET网站在运行过程中总是有可能报错,例如404等HTTP错误、500等程序异常。在IIS托管并报错的情况下,网站的默认行为依次是:(1).NET运行时接收并处理的部分显示.N...

从被扫描记录看网站安全应该注意的一些细节

从被扫描记录看网站安全应该注意的一些细节

1、尽可能地隐藏服务器真实IP,减少攻击目标。例如使用负载均衡、网关等作为门户,由负载均衡或网关转发到后端服务器。2、服务器必须开放的服务(除HTTP、HTTPS等为公众开放的服务外),尽可能改为其它较大的不常用的端口号,这样攻击者需要扫描...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。