JIRA数据库设计的一点学习总结
今天无聊,把JIRA的数据库导过来(MySQL版的),在Navicat里查看了一下。总结出以下几点: 一、各种类型: Tables: N个 Views:0个 Functions:0个 Trigger:0个 二、外键使用: 表设计中外键使用得很少,除了一组貌自动生成的表外,其它基本没有外键 外键的使用
今天无聊,把JIRA的数据库导过来(MySQL版的),在Navicat里查看了一下。总结出以下几点:
一、各种类型:
Tables: N个
Views:0个
Functions:0个
Trigger:0个
二、外键使用:
表设计中外键使用得很少,除了一组貌似自动生成的表外,其它基本没有外键
外键的使用,网上有不少争论:
http://www.itpub.net/thread-1313696-1-1.html
http://www.itpub.net/thread-1312844-1-1.html
三、表数据类型选型:
基本只使用了以下几种
decimal:18
decimal:9
varchar(255)
char(x)根据需要
longtext
datetime
四、表名,字段命名规范
以英文全称为主,如AUTHOR
多个单词有用下划线,也没有没有的,如:PROJECTLEVEL,PASSWORD_HASH,感觉这一块做得不是很规范
每个表都包含主键,大都数以ID为主键,也用不少多主键的表
总结:
因为要兼容多个数据库,所以选择尽量少的数据类型,提高在各种数据库里的兼容性,引入尽量少的数据库特性
外键的问题,不发表意见,见那两个链接
id,一般都用decimal(18),为大数据量提供了保障(mysql里支持bigint的,但Oracle之类的没有,为了通用性),为什么是18?对应到java.lang.Long就知道了。
decimal(18),可以映射为Long(JIRA是用Java编写的),如果是19位的话,可能会超过Long的最大数9223372036854775807
varchar一般用varchar(255)多,用数据库了,多点损耗比长度不够要好
以下是预览图:
推荐阅读
-
【PHP】设计模式是成功经验的总结,建议好好学习一下
-
Docker学习总结(51)——为什么不建议把数据库部署在 Docker 容器内的7大原因?
-
MySQL 学习总结 之 初步了解 InnoDB 存储引擎的架构设计
-
PostgreSQL的学习心得和知识总结(十二)|数据库触发器使用说明及特性总结
-
Oracle的学习心得和知识总结(三)|Oracle数据库重要函数详解 单行函数(一)(建议收藏 持续更新...)
-
关于MySQL数据库事务的机制学习总结
-
学习C#.NET、使用sqlserver数据库的总结
-
2018年值得设计师学习的六大视觉设计趋势总结
-
【安卓学习之UI设计】TabLayout的使用总结
-
mysql存储引擎的一点学习心得总结_MySQL