浅谈数据库建表的时候要添加哪些基本字段

本文探讨了数据库设计中的通用字段添加策略,包括ID、CODE等,以及系统表如属性状态字典表的设计,旨在提升数据库灵活性和维护性。同时,文章解释了为何选择utf8mb4字符集,并讨论了序列化的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.我们给每个表都加上IDCODE创建日期最后修改日期备注数据状态公共字段,方便后续操作

规则:以SYS_USER表为例,加上如下字段USER_IDUSER_CODEGMT_CREATEGMT_MODIFIEDMEMODATA_STATE

 

系统表(一般是必须的)

每个系统会存在状态属性信息和常量配置信息,所以我们给加上2张表

  1. 属性状态字典表

    用于配置属性状态,如下拉框中的中文描述,类似于给一些数字或字母加上中文描

系统表

每个系统会存在状态属性信息和常量配置信息,所以我们给加上2张表

  1. 属性状态字典表

    用于配置属性状态,如下拉框中的中文描述,类似于给一些数字或字母加上中文描述

    CREATE TABLE `SYS_DD` (
      `DD_ID` int(11) NOT NULL AUTO_INCREMENT,
      `DD_TABLE` varchar(30) DEFAULT NULL COMMENT '对应的TABLE',
      `DD_COLUMN` varchar(30) DEFAULT NULL COMMENT 'TABLE中COLUMN',
      `DD_CODE` varchar(30) DEFAULT NULL COMMENT '代码',
      `DD_VALUE` varchar(250) DEFAULT NULL COMMENT '代码对应的显示的值',
      `DD_REMARK` varchar(250) DEFAULT NULL COMMENT '说明',
      `DD_ORDER` int(11) DEFAULT NULL COMMENT '排序',
      `GMT_CREATE` datetime DEFAULT NULL COMMENT '创建时间',
      `GMT_MODIFIED` datetime DEFAULT NULL COMMENT '修改时间',
      `MEMO` varchar(250) DEFAULT NULL COMMENT '备注',
      `DATA_STATE` int(11) DEFAULT NULL COMMENT '状态',
      PRIMARY KEY (`DD_ID`),
      UNIQUE KEY `UDX_SYS_DD_CODE` (`DD_TABLE`,`DD_COLUMN`,`DD_CODE`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据字典';

 

理由分析:

a.一般我们要把一些字典表里面的下拉框最好保存到数据库当中,避免下次要更改文字的时候,我们要到前端页面去修改,我们只需要在数据库当中修改即可。

b.我这样设计数据库还有一个好处就是在里面添加了DD_TABLE` varchar(30)(表名),和表明对应的字段(DD_COLUMN),这样可以做到灵活配置,当一个表中需要有多个下拉框的时候这种配置就非常好。

c.我还在字典表里对应DD_CODE-->DD_VALUE这样我们给前端接口既可以给code,又可以给对应的中文字,做到灵活

d.在这里特别说一点,就是我为什么设计数据库表的时候把类型设计为utf8mb4,主要是考虑到emege表情,大家有兴趣可以百度一下utf8mb4和utf-8的区别

 

为什么要序列化

我们要把数据从一个地方存储到另外的一个地方去的时候,必然是希望数据是按照某种方式来搬运,在java中我们某个类实现序列化的时候,通常是按照JDK序列化方式来进行的,至于为什么要采用这种方式,大家可以去百度。所以我们在用redis来缓存,我们必然是把user这个对象进行序列化,不相信,你可以找任何一个来看一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值