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).更小通常更好 一般来说,要 ...
随机推荐
- Matplotlib(嵩老师.)
Matplotlib 库的使用 Matplotlib 库有各种可视化类构成,内部结构复杂,受Matlab启发 matplotlib.pyplot是绘制个类可视化图形的命令子库相当于快捷方式 imp ...
- 从零搭建vsftpd
先吐槽一下这个工具,配置繁琐,限制规则复杂,报错信息不够详细,学起来吃力. 准备工作 [root@vsftp-server ~]# mkdir /data/ #创建ftp目录 [root@vsftp- ...
- [nowcoder5667H]Happy Triangle
可以发现合法的答案有两种可能: 1.询问的$x$即为最大值(或之一),那么只需要找到x前两个数并判断即可 2.询问的$x$不是最大值,那么就要保证另外两边之差小于$x$,维护后缀中$的前驱k-k的前驱 ...
- Elastic AMP监控.NET程序性能
什么是Elastic AMP Elastic APM 是一个应用程序性能监控系统.它可以请求的响应时间.数据库查询.对缓存的调用.外部 HTTP 请求等的详细性能信息,可以实时监控软件服务和应用程序. ...
- vue进行代码排序
<template> <div> <div> <h3>排序 </h3> <button @click="orderByAge ...
- Python的数据解析
- Codeforces 1606F - Tree Queries(虚树+树形 dp)
Codeforces 题面传送门 & 洛谷题面传送门 显然我们选择删除的点连同 \(u\) 会形成一个连通块,否则我们如果选择不删除不与 \(u\) 在同一连通块中的点,答案一定更优. 注意到 ...
- Codeforces 1499G - Graph Coloring(带权并查集+欧拉回路)
Codeforces 题面传送门 & 洛谷题面传送门 一道非常神仙的题 %%%%%%%%%%%% 首先看到这样的设问,做题数量多一点的同学不难想到这个题.事实上对于此题而言,题面中那个&quo ...
- zabbix_get
zabbix_get是一个命令行工具,可用于从一个远程的Zabbix探针获取监控数据. 1.2 用法 zabbix_get [-hV] [-s <host name or IP> ] [- ...
- Oracle-SQL语句的语法顺序和执行顺序
SQL语句的语法顺序和执行顺序了,我们常见的SQL语法顺序如下: SELECT DISTINCT <Top Num> <select list>FROM [left_table ...