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

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

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

一、配置表

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


字段名称数据类型属性允许空默认值备注
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

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

相关文章

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

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

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

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

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

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

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

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

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

ASP.NET Core网站报“An assembly specified in the application dependencies manifest was not found”异常解决

ASP.NET Core网站报“An assembly specified in the application dependencies manifest was not found”异常解决

        ASP.NET Core网站报“An assembly specified in the application dependencies ma...

ASP.NET MVC WebApi控制器方法使用async假死超时问题

ASP.NET MVC WebApi控制器方法使用async假死超时问题

        在一个ASP.NET MVC WebApi控制器方法中使用async标记为异步方法后,有时会假死超时。根本原因是同步方法和异步方法混合造成的死锁...

使用Nginx实现简单密码认证

使用Nginx实现简单密码认证

        假设一个网站没有实现登录认证功能,我们要临时增加一个简单的账号密码认证,可以使用Nginx来实现该功能。  server&n...

发表评论

访客

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