Mysql实例 表设计
一.介绍
有一个公司叫月亮集团,他们旗下有很多网站每天都有很多人访问。于是成立了广告部,让其他公司来在他们的页面上放广告,从而收费。
二.设计表格
公司表
公司名称 | 公司编号(自增主键) | 电话号码 |
---|---|---|
A | 1001 | xx |
B | 1002 | xx |
广告表
广告编号 | 有该广告的公司的编号(自增主键) | 广告收费/点击一次 |
---|---|---|
1 | 1001 | 2 |
2 | 1001 | 3 |
3 | 1002 | 2 |
点击表
广告编号 | 该广告发送给浏览者的日期 |
---|---|
1 | 101101 |
2 | 101102 |
1 | 101323 |
3 | 111232 |
三.查询
查都有哪些公司
直接查询公司表的 公司名称 字段
select 公司名称 from 公司表;
结果为A,B公司投放了广告
查A公司都放了哪些广告
先到公司表,将公司名称=A的编号提取出来,然后将公司编号作为条件去广告表里找广告编号。
select 广告编号 from 广告表 where 公司编号 = (select 公司编号 from 公司表 where 公司名称=A);
结果为A公司投放了编号为1,2的广告
查A公司10月份该交多少广告费
A公司10月份广告费=1广告次数 X 1广告的价格+2广告次数 X 2广告价格
先查出A公司放了哪些广告,编号多少,这个上面已经出结果了,得到编号1,2
然后根据编号查出1,2广告每次点击多少钱
select 广告费 from 广告表 where 广告编号=1;
select 广告费 from 广告表 where 广告编号=2;
根据广告编号查出10月份的1广告点击有多少次,日期为秒格式,所以找出10-11月之间的即可匹配。
select 次数 from 点击表 where 编号=1 and 浏览日期 between 100000 and 199999;
select 次数 from 点击表 where 编号=2 and 浏览日期 between 100000 and 199999;
最后做个计算即可
四.分析
表结构设置
目前有3张表,基本满足业务需求,但未来查询更多,需要重新设计主键位置,表结构。
当数据庞大,首当其冲的是点击表,可能一天有几万次记录写入,这张表将变得庞大,可以考虑将表根据月份进行拆分。
sql语句
刚才查询A公司需要交费多少,比较繁琐,需要操作多次,可以将sql语句进行优化,查看消耗时间是多少,找出最优的语句和方法。
其它功能
当前表除了基本的查询,还可以进行数据分析。
可以通过点击表,分析出当前这月哪个广告受欢迎,次数最多。这种可以去和公司商议,建议投放公司将这类广告放到更显眼位置,但费用增加。
可以通过广告表,分析出当前A公司投放多少广告,如果很多说明资金充足,可以商议价格,比如降低广告费,但要求对方投入更多广告。
Mysql实例 表设计的更多相关文章
- MySql数据表设计,索引优化,SQL优化,其他数据库
MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...
- 数据库设计-Mysql数据库表设计的过程中几个关键点
一.表设计过程中应该注意的数据类型 1)更小的通常更好 控制字节长度 2)使用合适的数据类型: 如tinyint只占8个位,char(1024)与varchar(1024)的对比,char用于类似定长 ...
- MySQL库表设计小技巧
前言: 在我们项目开发中,数据库及表的设计可以说是非常重要,我遇到过很多库表设计比较杂乱的项目,像表名.字段名命名混乱.字段类型设计混乱等等,此类数据库后续极难维护与拓展.我一直相信只有优秀的库表设计 ...
- 如何有效的跟踪线上 MySQL 实例表和权限的变更
介绍 从系统管理员或 DBA 的角度来讲, 总期望将线上的各种变更限制在一个可控的范围内, 减少一些不确定的因素. 这样做有几点好处: . 记录线上的库表变更; . 对线上的库表变更有全局的了解; . ...
- MySQL分类表设计--根据ID删除全部子类
在做数据库分类表的时候,通常会有这样的设计:一个字段是ID,另一个字段PID,PID指向自己的上级分类: 这样的设计带来的问题是:我要删除一个类,我希望它的子类全部一起删除: 在不知道分类有多少层级的 ...
- mysql大表设计以及优化
MYSQL千万级数据量的优化方法积累https://m.toutiao.com/group/6583260372269007374/?iid=6583260372269007374 MySQL 千万级 ...
- EF Code First MySql 主从表设计的一些需要注意的内容
假如有下面两张表 public class Main { public int Id{get;set;} public string Name{get;set}; public virtual ICo ...
- 四 MySQL数据库表设计
一: 设计表: user: ID, PWD, name, type archiveRecord: referdate, archiveNum, owner, user, ...
- Mysql学习总结(17)——MySQL数据库表设计优化
1.选择优化的数据类型 MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要.不管选择何种类型,下面的简单原则都会有助于做出更好的选择: (1).更小通常更好 一般来说,要 ...
随机推荐
- dart系列之:在dart中使用生成器
目录 简介 两种返回类型的generator Stream的操作 总结 简介 ES6中在引入异步编程的同时,也引入了Generators,通过yield关键词来生成对应的数据.同样的dart也有yie ...
- 百胜中国使用Rainbond实现云原生落地的实践
百胜中国使用Rainbond实现云原生落地的实践 关于百胜中国 自从1987年第一家餐厅开业以来,截至2021年第二季度,百胜中国在中国大陆的足迹遍布所有省市自治区,在1500多座城镇经营着11023 ...
- SpringCloud微服务实战——搭建企业级开发框架(二十六):自定义扩展OAuth2实现短信验证码登录
现在手机验证码登录似乎是每个网站必备的功能,OAuth2支持扩展自定义授权模式,前面介绍了如何在系统集成短信通知服务,这里我们进行OAuth2的授权模式自定义扩展,使系统支持短信验证码登录. 1.在g ...
- ICCV2021 | 渐进采样式Vision Transformer
前言 ViT通过简单地将图像分割成固定长度的tokens,并使用transformer来学习这些tokens之间的关系.tokens化可能会破坏对象结构,将网格分配给背景等不感兴趣的区域,并引 ...
- 2017Java前景怎么样?
当今社会互联网软件行业属于高薪技术行业,伴随着互联网的发展Java在Web领域的优势也日渐凸显,并且java语言本身就应用最广泛,最高效.据说,全球有25亿Java器件运行着Java,450多万Jav ...
- [GZOI2017]配对统计
发现我们可以在\(O(n)\)里很多处理出至多\(2n\)对好对. 然后转化成二维偏序. 然后想怎么做怎么做:排序+BIT,莫队都行.
- 洛谷 P5406 - [THUPC2019]找树(FWT+矩阵树定理)
题面传送门 首先看到这道题你必须要有一个很清楚的认识:这题新定义的 \(\oplus\) 符号非常奇怪,也没有什么性质而言,因此无法通过解决最优化问题的思路来解决这个问题,只好按照计数题的思路来解决, ...
- P7708「Wdsr-2.7」八云蓝自动机 Ⅰ
*X. P7708「Wdsr-2.7」八云蓝自动机 Ⅰ. 摘自 分治与根号数据结构学习笔记 第三部分 莫队 例题 X.. 一道莫队好题.私以为本题最有价值的地方在于对单点修改的转化以及对交换两个数的处 ...
- JAVA中数组的基本概念与用法
JAVA中数组的基本概念与用法 1. 数组的定义与特点 数组的一种引用数据类型 数组中可以同时存放多个数据,但是数据的类型必须统一 数组的长度在开始时就需要确定,在程序运行期间是不可改变的 虽然可以使 ...
- JavaScript中var与let的异同点
var是JavaScript刚出现时就存在的变量声明关键字,而let作为ES6才出现的变量声明关键字,无疑两者之间存在着很大的区别.那么具体有哪些区别呢? 1.作用域表现形式不同,var是函数作用域, ...