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).更小通常更好 一般来说,要 ...
随机推荐
- ES6基础知识(Reflect)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python学习周总结(一)
Python-FirstWeek知识汇总 学习了一周python,最大的感触就是要有自己的逻辑思维和发散性思维,考虑事物的广度,层层相扣即使数学逻辑不会,基本的程序功能还是可以实现的,共勉,加油~ 一 ...
- 让textarea根据文本的长度自动调整它的高度
... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR ...
- 菜鸡的Java笔记 第十 - java 类与对象
(局部变量需要初始化,全局变量不初始化系统也会帮忙初始化而局部变量系统不会帮忙初始化)>>> 2.1 类与对象基本概念 在现实生活之中,类指的就是具备某一共性的群 ...
- [atARC066F]Contest with Drinks Hard
先不考虑修改,那么很明显即对于每一个极长的的区间,若其长度为$l$,有${l+1\choose 2}$的贡献 考虑dp去做,即$f_{i}$表示前$i$个数最大的答案,则$$f_{i}=\max(\m ...
- [noi39]子图
小w喜欢的图可以发现就是一棵森林(是不是很神奇,其实易证:如果有环那么环本身就不合法,如果没有环那么显然合法).继续研究发现删边最小<=>选边最大<=>最大生成森林,krusk ...
- 对于cmd命令的一些常用用法
cmd命令是当今比较常见的主机命令,对于一些文件的执行和后台数据的控制有着比较有效的规范. 现在就讲几个比较常见的命令. IP查询 按住window+r 进入控制台,在输入cmd命令.在弹出的 cmd ...
- 城市防汛应急管理智慧 Web GIS 可视化平台
前言 今年第 17 号台风"狮子山"(热带风暴级)登陆海南岛,受"狮子山"影响,海南岛北半部地区出现暴雨到大暴雨.局地特大暴雨.台风带来的强风雨导致海南岛多地树 ...
- 【2020五校联考NOIP #8】狗
题面传送门 原题题号:Codeforces 883D 题意: 有 \(n\) 个位置,每个位置上要么有一条狗,要么有一根骨头,要么啥都没有. 现在你要给每个狗指定一个方向(朝左或朝右). 朝左的狗可以 ...
- Codeforces 986F - Oppa Funcan Style Remastered(同余最短路)
Codeforces 题面传送门 & 洛谷题面传送门 感谢此题教会我一个东西叫做同余最短路(大雾 首先这个不同 \(k\) 的个数 \(\le 50\) 这个条件显然是让我们对每个 \(k\) ...