X和面试随笔
第一次参加了面试,面试官很好,我写的笔试和回答的都很差劲,虽然技术方面的回答我想抽自己,但是人家还是要了,给了我一个机会,很感谢.
第一道题:设计一个进销存系统的表结构设计 1:老板每天要知道卖出的货物.2:要定期查看货物的成本、销售额和利润。
错误:只考虑了基本构造,写出了每一个表的列名,并没有考虑真正的表结构设计,因为表结构设计失误可能会产生订单重复,数据混乱等情况,是很要命的。谢谢这次面试经历让我真正的思考表结构设计本身,一个错误的设计会导致难抓的BUG,更别提修复了。再次感谢面试官给我机会,我十分开心,这也会激励着我继续学习。
在此,以昨天习得的经验,并翻阅了书籍,查阅了资料,感谢rose^Chen的《项目总结---表结构设计》的总结经验,现对面试题进行补充;
表名:[省略comment,即注释,引擎采用InnoDB]
ID:商品ID,使用8字节无符号的Bigint(20),主键要保证唯一性、非空性、有序性、可读性、可扩展性。即:
id bigint(20) unsigned[使用bigint时它能储存0~65535的数据范围,最大值在18446744073709551615] not null[非空性] primary key[主键 唯一性] auto_increment(自增 有序性)
Goods:商品名, varchar(100) not null;[ 如需要副标题,则varchar(200),图片地址500,相对地址. 图片地址用 text json格式]
Cost:成本 int unsigned(产品成本不可能为负数保证了最大值在4294967295不过精确角度讲建议采用decimal(20,2)保留两位小数,因为适用于货币计算) not null;
sell + gain和Cost相同.gain可以用自定义函数实现 利润=销售额-每件商品成本;
1:老板每天要知道卖出的货物.2:要定期查看货物的成本、销售额和利润。
新建计划执行计划的定义.
X和面试随笔的更多相关文章
- PHP面试随笔
1.常见的HTTP状态码: 1xx系列:代表请求已被接受,需要继续处理 2xx系列:代表请求已成功被服务器接收.理解并接受 200:表示请求已成功,请求所希望的响应头或数据体将随此响应返回 201:表 ...
- java 面试随笔
---恢复内容开始--- 1.自我介绍 2.你在项目开发过程中遇到的那些问题! 3.懂bootstrap么?简单介绍一下 4.spring的会话数据是怎样的. 5.为什么会有session 因为htt ...
- 杂谈---小故事小道理,面试中的小技巧(NO.2)
本篇是接着上一篇面试随笔的,上一次有猿友反应写的有些“扯淡”,LZ思来想去最大的原因可能是由于上一章写的全是一些大忌,既然是大忌,那么在现实当中发生的概率还是相对较小的,大部分人还是很少在面试中犯如此 ...
- 随笔java面试基础
转:http://blog.csdn.net/wenwen360360/article/details/54969418 Application ―Java应用程序”是可以独立运行的Java程序.由J ...
- 面试题---->线程的入门,读完可以应付一般的面试(管理员不要移除我的随笔啊)
这个都是入门和一般的常规知识,大佬轻喷 ①.继承Thread类 ②.实现Runnable接口(常用,优点多) ③.实现Callable接口 实现Runnable和Callable接口的类只能当作一个可 ...
- 前端开发面试知识点大纲--摘自jackyWHJ
前端开发面试知识点大纲:HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应 Ja ...
- 你很牛B,面试却没过,为什么?
点击标题下「飞测」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...
- Java面试系列之HashMap大扫盲汇总
PS:整理的稍微有点急,不足之处,望各路道友指正,List相关可以查看前一篇随笔! HashMap的工作原理是近年来常见的Java面试题,几乎每个Java程序员都知道HashMap,都知道哪里要用Ha ...
- Redis的那些最常见面试问题
随笔:经过长达一周的奔波和面试,电话面试,回首今天终于成功的入职了,总共面试了大概10家公司,包括阿里,京东,IBM等等,京东技术过了,学历因为非统招就被pass了,阿里面了2次电话面试就没下文了,估 ...
随机推荐
- Java int与String互相转化大全
int -> String //int 转化才 string int num = 123456; //方法一 会产生两个String对象 String s1 = num+"" ...
- Asset Catalog Help (三)---Adding Image Sets
Adding Image Sets Organize versions of your images in image sets, which you can add to an asset cata ...
- python 之队列
进程和线程模块下都有队列类. 线程队列: # 后进先出->堆栈 q=queue.LifoQueue(3) # 优先级队列,数字越小优先级越高 q=queue.PriorityQueue(3) 进 ...
- python3 类 组合
解决类与类之间代码冗余问题有两种解决方案: 第一 是继承,第二是组合 1:继承 描述的是类与类之间的也就是什么是什么的关系 2: 组合 描述的是类与类之间的关系, 是一种什么有什么的关系的,也 ...
- Weekly Contest 78-------->810. Chalkboard XOR Game
We are given non-negative integers nums[i] which are written on a chalkboard. Alice and Bob take tu ...
- codeforces743D 【DFS】
题意: 给你一棵以1为root的根,然后让你求两棵不相交子树的最大和: 思路: DFS,主要就是你一定得使两棵子树不相交: 对于一个顶点u,维护以u为根的最大子树和. ①:包含u,即所有的结点和. ② ...
- CodeForces Canada Cup 2016【A,B,C,D】
CodeForces 725A: 思路就是如果"最左"不是'>'这个了,那么这个右边的一定不可能到达左边了: 同理最右: CodeForces 725B: 有两个空姐,一个从 ...
- builtin_shaders-5.3.4f1学习-Sprites-Default
Shader "Sprites/Default" { Properties { [PerRendererData] _MainTex ("Sprite Texture&q ...
- atcoder#073D(枚舉)
題目鏈接: http://arc073.contest.atcoder.jp/tasks/arc073_b 題意: 給出n, m兩個數, n是物品數目, m是背包容量, 接下來n行輸入, wi, vi ...
- [Xcode 实际操作]九、实用进阶-(3)给代码方法添加宏注释
目录:[Swift]Xcode实际操作 本文将演示如何在方法列表中,对方法名称进行注释. 这样可以使程序,按功能分块,使方法清晰.易读并且方便定位. 在项目导航区,打开视图控制器的代码文件[ViewC ...