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子句中写在最后 ...
随机推荐
- 初学者的linux - 基本知识篇
1.Linux系统结构 Linux是一套免费使用和自由传播的类Unix操作系统,它是一种倒树结构. “/”就是系统的顶级目录,称作根目录,“/bin,/root,/home,/etc.."这 ...
- 温故而知新,重温 Java 7 的那些“新”特性
2009 年 4 月 20 日,Java 的亲生父亲 Sun 被养父 Oracle 以 74 亿美元收购,这在当时可是一件天大的事.有不少同学都担心 Java 的前途,我当时傻不啦叽地也很担心:自己刚 ...
- win7 磁盘碎片整理
最近每天早上开机,都出现开机正常,但是所有软件都没法点开,性能特别差: 咨询了运维小伙伴,提示可以整理下电脑磁盘碎片试试.那么如何整理呢,如下详细说明 1.先整理C盘,打开我的电脑,在C盘上,右击-- ...
- [开源] .NETCore websocket 即时通讯组件---ImCore
前言 ImCore 是一款 .NETCore 下利用 WebSocket 实现的简易.高性能.集群即时通讯组件,支持点对点通讯.群聊通讯.上线下线事件消息等众多实用性功能. 开源地址:https:// ...
- 【linux日志】【日志分析】linux系统各日志文件的含义
前段时间太忙,没有来得及管博客,最近时间充裕了,开始更新博客. 因为最近在看linux日志相关内容,把心得分享给大家 linux系统日志文件默认存放路径/var/log/ ls查看此路径下有哪些日志文 ...
- 【iOS】NSString rangeOfString
今天遇到了 NSString 的 rangeOfString 方法,刚遇到的时候不知道什么作用, 网上找到了一篇文章,介绍得挺简洁,代码如下: NSString *str1 = @"can ...
- oracle的开窗函数
原创 select * from (select province, commodity, sum(price), ROW_NUMBER() OVER(PARTITION BY province o ...
- Oracle_InstantClient 及PL/SQL Developer工具的安装
一.下载 InstantClient 地址: http://www.oracle.com/technology/software/tech/oci/instantclient/index.html i ...
- 你所不知道的 CSS 负值技巧与细节
写本文的起因是,一天在群里有同学说误打误撞下,使用负的 outline-offset 实现了加号.嗯?好奇的我马上也动手尝试了下,到底是如何使用负的 outline-offset 实现加号呢? 使用负 ...
- java-web调用后台下载方法
后台下载指定文件必定会用到流, 无论使用poi还是使用jxl导出excel都需要用到流一种是outputstrean,另一种fileoutputstream第一种:如果想要弹出保存的提示框必须加入下列 ...