sql建表经验总结——主要是建表现象
在建表方面你都有哪些感悟?
见过的建表的一些现象:
1,一对多业务,有时候在主表见一个字段xxIds,然后存多表的id,多个英文逗号隔开,不知道这样好不好?
2,大部分字段建成varchar(50),反正现在空间不珍贵了(相对而言),不管name,还是描述,不算事分类名还是别名……
3,时间类型建成varchar(20),这样见的好处大概是转json时不会被转成事件戳了,啥数据都能被存储进去?
4,钱数据被建成varchar(20),数据不会丢失了?反正也不在数据库计算,不知道为啥这样见?
5,tinyint见到的很少,都是直接用int?其实取值范围很小,只有那么几个。
6,索引要不建一大堆,要不完全不见?
7,很多时候都很纠结,一对多的列表查询时,该如何查,关联多表数据吧,数据会重复,不关联吧,列表又要展示,你们都是咋查询的?
8,时间范围查询,不转类型也能查询,数据库都帮你转好了?耗费性能,性能很难被察觉阿……
9,存储过程一写几百行,用的时候真好用,改的时候不好改,到底该怎么权衡,总是很难办,随波逐流吧……
11,视图到底还能不能用到索引,是不被关注的,这个问题一直没搞清楚啊,网上说是不会用到……
12,一对多还好,很常见,多对多数据量真恐怖啊,有时候反复分析,好不容易转为一对多,但是有时候针对是灾难阿……
13,convert xml配合outer apply写的sql好难看啊,不知道性能如何呢,反正数据是查到了……
14,stuff写起来还是不顺手啊,可是客户希望拼起来,也没有办法啊,拼多了感觉stuff函数好强大啊……
15,over函数不要太强大啊,除了分页使用,还有好多用法,都不怎么用,但是进行分组排序真的好用,有时候。
16,group by 后having过滤往往被忽略,可是配合having再配合聚合函数用,有时候很方便。
17,with t as上下文表达式,大部分数据库都支持,有时候大大简化了sql的清晰度。
可能有时候见的不规范建表的现象多了,往往变麻木,然后很多字段的长度都建的长一点,varchar(50)、varchar(100)到处都是,很难评价啊……
只是罗列了自己看到的一些现象,希望大家批评指正,在评论中可以写下您的见解,我整理下,大家共同进步。
sql建表经验总结——主要是建表现象的更多相关文章
- 定制Asp.NET 5 MVC内建身份验证机制 - 基于自建SQL Server用户/角色数据表的表单身份验证
背景 在需要进行表单认证的Asp.NET 5 MVC项目被创建后,往往需要根据项目的实际需求做一系列的工作对MVC 5内建的身份验证机制(Asp.NET Identity)进行扩展和定制: Asp.N ...
- 建表过程-列名&列类型&修改表B
怎么建表? 主键 名称 重量 价格 生产日期 保质期 产地 种类 分析:我们只要把第一行的表头建好后,这张表也就完成了. 术语:建表的过程就是声明字段过程 ...
- oracle 建表空间->创建用户并把表空间分配给用户->给用户授权->导库
首先注意:我参考网上使用的sysdba模式(normal)登陆的,其他的模式建不了用户(个人没有进行其他模式的表空间尝试,如有人尝试欢迎补充,感激不尽) 表空间相当于表的容器(一下所有的操作都适用于o ...
- 【HIVE】(1)建表、导入数据、外部表、导出数据
导入数据 1). 本地 load data local inpath "/root/example/hive/data/dept.txt" into table dept; 2). ...
- 获取表空间的语句 以及 建表和索引的ddl
alter session set container=PHD1; SET SERVEROUTPUT ON SET LINESIZE SET FEEDBACK OFF SET PAGESIZE sel ...
- mysql--创建表,插入数据,修改表名,删除表,简单查询/内连接、左/右连接
创建表mm: 其中id为主键且自增长 ) primary key not null unique auto_increment, name ) not null, age ), class ) no ...
- PL/SQL Developer图形化窗口创建数据库(表空间和用户)以及相关查询sql
前言:上一篇安装好oracle和pl/sql后,这篇主要讲如何创建数据库,因为接下来我的项目会连接数据库进行开发. 第一步.先用系统管理员登录pl/sql 我这里系统管理员用户名为system,密码为 ...
- SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法
不是很理解为什么在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你.而且我遇到的情况是居然有的时候阻止你,有的时候不阻止你,摸不到头脑. ...
- 浅谈SQL语句优化经验
(1) 选择最有效率的表名顺序(只在基于规则的seo/' target='_blank'>优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后 ...
随机推荐
- httpclient 方式提供接口
在后台写好自己的方法: 打开shiro验证,设置url访问: 提供包调用http方式连接后台获取数据: String url = getUrl(); HttpClient client = new H ...
- @GetMapping、@PostMapping和@RequestMapping的区别
@GetMapping 用于将Http Get 请求映射到特定处理程序方法的注释.具体来说就是:@GetMapping是一个作为快捷方式的组合注释 @RequestMapping(method = R ...
- 安装win10体验
没事干了,心血来潮弄了个win10专业版. 讲硬盘重新分区了,没办法,原来分的太少了. 使用winpe启动,直接将下载的win10还原到c盘,成功启动,设置的时候让提示输入id,没有啊?研究发现可以先 ...
- spark 源码分析之十一--Spark RPC剖析之TransportClient、TransportServer剖析
TransportClient类说明 先来看,官方文档给出的说明: Client for fetching consecutive chunks of a pre-negotiated stream. ...
- VM虚拟机Linux系统eth0下面没有inet和inet6
今天打开虚拟机发现ip有问题,VM虚拟机Linux系统eth0下面没有inet和inet6,明明都是配置好的 打开任务管理器-> 服务-> 打开VM的nat和DHCP和hostd 正常后:
- 【Android Studio】类名字右下角红色的 J 【待解决】
问题如下图所示: 正在寻找结解决方法--
- solidity智能合约字节数最大值及缩减字节数
智能合约最大字节数 在Solidity中,EIP 170将contract的最大大小限制为24 KB .因此,如果智能合约内容过多,会导致无法进行发布操作. 减少压缩字节数方法 方法及变量命名 在一定 ...
- resolv.conf文件配置相关的案例
引言 操作系统中/etc/resolv.conf配置文件中的内容一般为空,如果该文件配置不正确,将导致ssh.route.netstat命令响应慢的问题. 在/etc/resolv.conf添加错误地 ...
- ssm执行流程
SSM运行流程 1:服务器启动,创建springmvc的前端控制器DispatcherServlet,创建Spring容器对象. 加载spring-servlet.xml .applicationCo ...
- HomeKit智能球泡
产品名称: 智能LED灯泡调光调色 接入苹果HomeKit家庭(无需网关).天猫精灵.小爱.小度.Google.ALEXA 产品价格:9.9 本产品是针对HomeKit的产品,没有iphone手机,配 ...