mysql数据库设计 表名 注释 逆向生成关系模型 预留字段

1 表名

首先是数据库表的命名 可以看到都有前缀

命名公式: 前缀(模块)_功能别名_作用

sys_user 
sys user_info 
sys_role 
gd brand 
gd_category

 

2 字段的注释

每个字段都要写注释,一定要写全

11nN 
攝 皿 囗 
ulWPe

 

3 表与表之间的关系模型

3.1 使用场景及注意事项

navicat中有一个模型功能,能显示表之间的关系,有的公司要求在设计完表后,把这个模型发群里

 

但这个功能要求表之间建立主外键关系,而实际开发又不给建立主外键关联,所以流程上要先把做好的表备份,再去建主外键关联

大费周章建起来的目的也很简单,就只是“看一下”这个模型,实际开发时依然是用没有主外键关联的表

 

3.2 操作流程

首先建两个表,并设置外键关联

 

然后在表界面下多选需要生成关系模型的数据库

project 
information schema 
pe rfor ma nce_sche ma 
three project 
00 
sa les_consig nee 
sales order items 
sa les_retu r nsoods 
=sqlEEl 
sales_consignee @threeproj... sales_ordel 
a ctivity 
ftersale order 
a 
ftersale order text3 
a 
aftersales_application 
aftersales_approval 
aftersales_return_commodit-y 
a p pea _record 
a p pea _record _text I 
base admin 
bra rid 
cg_pu rchaseorder 
cg_pu seorderdetails 
wa rehousetype 
conversion 
gys_suppher

 

在选中数据库的情况下——鼠标右键——逆向数据库到模型,得到下图,此时可以使用文本标签,给各个表添加一些注释

04032 (localhost) 
Diagram I 
sysuser 04032 (localhost) 
T 
T 
Diag ram I 
fk user role 
fk_user_role [Label] 
sysrole 
sysrole [Label] 
sys user 
sysuser [Label] 
sysuser 
up w 
phone 
v archar (20) 
v archar (30) 
char (Il) 
datetime 
datetime 
char (l) 
ole 
v archar (255) 
datetime 
datetime

 

4 数据库脚本

如果根据业务需求向表中添加了新的字段,即修改了表的结构,在对表新建字段后,需要把sql预览里的语句提交给小组长、测试等人员,而且不能修改sql语句,要完全保留着给别人

SQLf" 
upd

 

ALTER. 
DD COLUMN address 
C CYYÆKT

 

5 预留字段

预留字段的目的是避免以后数据库表无法满足开发需求,导致需要修改数据库结构的情况,所以在一开始建表后就预留几个字段,允许以后通过重命名已有字段,满足开发需求

一般预留说明:

varchar类型 预留2个

int类型 预留2个

 

sysuser 04032 (localhost) 
* sysuser @4032 (local host)m sysro 
role 
tion schema 
1b 
lance schema 
;e admin 
;e brand 
se category 
una me 
uemail 
phone 
create time 
u pd a te_ti me 
deleted 
rid 
address 
remark I 
remark 2 
remark 3 
va rchar 
va rchar 
va rchar 
char 
d a tetime 
d a tetime 
char 
varchar 
varchar 
va rchar 
255 
255 
255

 

6 一张表必备的五个字段

无论什么表,都要有五个字段

主键id,一般与业务不相关

创建人

创建时间

修改人

修改时间

 

这五个字段一般都会被BaseEntity统一抽取,抽取的BaseEntity见下方代码

@Data
public class BaseEntity implements Serializable  {

    /**
     * 管理员id
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Null(groups = addGroup.class,message = "添加时不能有id ")
    @NotNull(groups = updateGroup.class,message = "修改id必须有数值")
    private Long id;


    /**
     * 创建者
     */

    @JsonIgnore
    private Long createBy;

    /**
     * 创建时间
     */
    @JsonIgnore
    private LocalDateTime createTime;

    /**
     * 修改者
     */
    @JsonIgnore
    private Long updateBy;

    /**
     * 修改时间
     */
    @JsonIgnore
    private LocalDateTime updateTime;


    /**
     * 创建时间和修改时间的调用
     */
    public void setData() {
        if (id == null) {
            //添加功能
            this.createBy = 1L;//创建人
            this.createTime = LocalDateTime.now();//当前创建时间
        } else {
            this.updateBy = 2L;//修改人
            this.updateTime = LocalDateTime.now();//当前修改时间
        }
    }
}

7 其他设置一图流

1 . 块 功 北 引 作 用 
甲 产 唯 违 
具 {tip 可 
以 访 河 
& 系 统 苣 何 公 过 都 不 需 我 的 基 毗 
土 底 甲 外 漩 莱 巷 表 之 河 的 关 系 加 萦 引 
4 . 功 北 开 0 晁 弃 之 后 数 过 苓 交 
开 发 的 数 厍 是 公 过 的 开 发 数 厍 《 丁 包 0 布 
到 晁 过 且 需 事 
5 动 北 的 应 哪 个 页 面 一 “ 嘟 些 据 某 自 于 哪 张 “ 一 一 有 郭 芸 
字 酚 “ 一 莱 于 嘟 个 
7 . 交 到 s “ 上 的 匹 
关 联 
老 新 mysq 》 张 表 
UPDATE user'SET 
Host'-%WHERE User'=' ℃ ot':FLUSH 
PRIVILEGES: 
型 《 蒙 与 蒙 之 河 关 
系 玺 2 据 莲 扌 《 唐 孬 
甲 产 的 主 机 过 % 卉 过 新 
*ELI-ISH PRIVILEGES' 
3 . 导 匕 sq 事 时 河

posted @ 2021-10-05 00:10  夏·舍  阅读(743)  评论(0编辑  收藏  举报