抽屉之Tornado实战(1)--分析与架构   项目模拟地址:http://dig.chouti.com/ 知识点应用: AJAX  用于偷偷发请求 原生ajax jQuery  ajax($.ajax) iframe伪造 上传文件 传统Form 弊端:会刷新页面   提醒:enctype=‘multiprt/form-data’记住这个特殊的设置 ajax上传:FormData方式(不是所有的浏览器都支持),Form表单+iframe(兼容性好) session  依赖cookie 验证码 …
表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据库菜鸟到数据库专家这个过程中,在表设计与管理上,或多或少,会犯一些错误.笔者今天就谈谈自己在这方面的经验与教训,或许能够给大家一些警示作用. 表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据库菜鸟到数据库专家这个过程中,在表设计…
数据库表设计这块学问比较多,我这里单从互联网角度出发同时结合Innodb的特性给出一些设计方法供大家参考.本文构建大概分两分部分:Innodb的特性及设计中如何利用这种特性. Innodb特性: Innodb是索引聚集表, 存储结构是BTREE Innodb的表的数据存储是有顺序的,默认是以主建排序,主建即是数据本身,不单独存放. 如果没有主建,Innodb以第一个唯一索引排序,如果连唯一索引也没,Innodb内部会产生一个6字节的字段排序(这个也是性能杀手,所以对这块如果不想花太多时间去想这个…
一个简单的用户登录系统 用户有账号密码,登录ip,登录时间 打开登录页面,输入用户名密码 登录日志,可以记录登陆的时间,登陆的ip 成功登陆了的话,就更新用户的最后登入时间和ip,同时记录一条登录记录 大致就是这样子 ----------------------- 创建数据库 navicat在localhost里面新建数据库 名字:sprinEg   编码utf-8 注意:字段名字使用navicat的时候不要有空格,否则会直接报错的 建立用户表 CREATE TABLE `t_user` ( `…
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都有,也可以说与我一样困惑的有好多人.感谢大神在网上的活跃,我知道了一对一关系存在的必要性. 1.首先就是这种关系出现的场景是什么样子,最好可以举个实际中的需求. 这样的场景有很多,比如:就拿最普通的用户信息来说,数据库中有一个表为user,一个表为user_auth.user表主要存放的字段为用户基…
经过我们上次分析,数据库要有最基本的四张表,用户表,消息表,类型表,点赞表,评论表,接下来我们看着怎么设计吧 首先我们要清楚,表设计的代码是写在models下的 用户表 #一张表对应一个类 class UserInfo(Base): #把表名赋给静态字段 __tablename__ = 'userinfo' #序号nid,用户名username,密码password,邮箱email,创建时间ctime #一行数据就是一个对象 nid = Column(Integer, primary_key=T…
经过我们上次分析,数据库要有最基本的四张表,用户表,消息表,类型表,点赞表,评论表,接下来我们看着怎么设计吧 首先我们要清楚,表设计的代码是写在models下的 用户表 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #一张表对应一个类 class UserInfo(Base):     #把表名赋给静态字段     __tablename__ = 'userinfo'     #序号nid,用户名username,密码password,邮箱emai…
这是我的ERP设计经验分享系列,今天讲的是数据库的表设计(1),主要阐述: 1.单字段的主键:2.使用int32作为主键类型:3.使用版本字段处理乐观锁定:4.生效字段标明是否允许“被使用”:5.锁定字段处理悲观锁定:6.行唯一字段处理分布式应用:…
ACT_ID_*:与权限,用户与用户组,以及用户与用户组关系相关的表 ACT_RU_*:代表了流程引擎运行时的库表,RU表示Runtime ACT_HI_*:HI表示History当流程完成了节点以后,就将其迁移到历史数据库表 ACT_GE_*(通用数据库 )涉及到两个表: act_ge_property:属性表,保存一些流程引擎的kv键值属性 对应数据库实体:PropertyEntityImpl act_ge_bytearray:资源表,存储的是一些流程定义的资源信息(包括流程定义文件xml.…
本篇为struts-2.5.2和spring-3.2.0以及hibernate-4.2.21的整合开篇. 一.测试的数据库表. 用户.角色和权限关系表.数据库是Mysql5.6.为了考虑到一些特殊数据类型处理,用户表(类)中加入日期(birthday-Date)和枚举(gender-Gender)类型. 用户.权限和角色的数据库设计,使用用户.角色和权限,多表查询的设计(关系如上图).如果多对多的关系应该可以设计如下.(用户和角色) 1.User.hbm.xml User.java中有一个Set…
在开发工业系统的数据采集功能相关的系统时,由于数据都是定时上传的,如每20秒上传一次的时间序列数据,这些数据在经过处理和计算后,变成了与时间轴有关的历史数据(与股票数据相似,如下图的车辆行驶过程中的油量曲线.历史轨迹数据等).当采集点多的时候,如上万个采集终端,再加上时间的累积,数据表会变得越来越大.数据库会越来越难以维护. ​ 对历史数据操作的功能有历史数据的查询.统计图表曲线显示等等.而这些基于组合条件的历史查询功能和图表显示功能对数据库的压力可不小,如果听之任之,则海量的数据查询.统计计算…
数据库脚本 drop table crm_user_info; drop table crm_work_customer_relation; drop table crm_business; drop table crm_travel; drop table crm_contact_log; drop table crm_order; drop table crm_order_detail; drop table crm_gods; drop table crm_judge; drop tabl…
一.设计问题? 1.主键是用自增还是UUID ? Innodb 中的主键是聚簇索引. 如果主键是自增的,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页.如果不是自增主键,那么可能会在中间插入,就会引发页的分裂,产生很多表碎片!UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式.由以下几部分的组合:当前…
http://mp.weixin.qq.com/s/a8klpzM5iam0_JYSw7-U4g 我们在设计数据库的时候,是否会突破常规,找到最适合自己需求的设计方案,下面来举个例子: 常用的邻接表设计,都会添加 一个 parent_id 字段,比如区域表(国.省.市.区): CREATE TABLE Area ( [id] [int]  NOT NULL, [name] [nvarchar]  (50) NULL, [parent_id] [int]  NULL, [type] [int]  …
水电缴费管理系统数据表设计 SQL建表脚本: 1 --建表 2 --管理人员表 admin 3 create table admin( 4 admin_id varchar2(3) not null, 5 admin_loginname varchar2(8) not null, 6 admin_password varchar2(6) not null, 7 admin_username varchar2(4) not null, 8 constraint pk_admin primary k…
pgsql表设计中,有时候涉及到日期和时间字段需要分别处理的情况,这个时候可以使用date和time字段分别定义两个字段的属性 对应的实体类可以使用LocalDate和LocalTime去做映射 环境: MybatisPlus3.1 pgsql Jdk8…
一.表设计过程中应该注意的数据类型 1)更小的通常更好 控制字节长度 2)使用合适的数据类型: 如tinyint只占8个位,char(1024)与varchar(1024)的对比,char用于类似定长数据存储比varchar节省空间,如:uuid(32),可以用char(32). 3)尽量避免NULL建议使用NOT NULL DEFAULT '' 4)NULL的列会让索引统计和值比较都更复杂.可为NULL的列会占据更多的磁盘空间,在Mysql中也需要更多复杂的处理程 二.索引设计过程中应该注意的…
在这里,我们把form表单验证的代码进行工具化了,以后稍微修改一下参数就可以拿来用了 先贴上代码 forms.py from backend.form import fields class BaseForm: def __init__(self): self._value_dict = {} self._error_dict = {} self._valid_status = True def valid(self, handler): for field_name, field_obj in…
1 数据库设计 1.1 表关系梳理 仔细思考业务关系,得到如下表关系图 1.2 用户表结构 1.3 分类表结构 id=0为根节点,分类其实是树状结构 1.4 商品表结构 注意价格字段的类型为 decimal 1.5 支付信息表结构 1.6 订单表结构 乍一看,有必要搞这么多种的时间嘛?有以下诸多原因 前端显示需要,那就必须存着呀! 方便定位排查问题,比如某用户投诉某订单一直不发货,肯定就需要时间去定位 方便数据分析,比如需要计算从用户支付到最终发出商品的平均时间 根据订单状态确认相应订单时间 1…
当然今天讲的验证,不只Tornado会用,以后用到web框架都会用到,最常见的场景就是只有用户登陆了才能执行某些操作,所以在执行这些操作前要先做登陆状态的验证. 比如:点赞,发布,评论等需要验证,都需要用到if self.session[‘is_login’]进行判断,你可能觉得,这代码也不多啊,不过一旦网站大了,场景多了,可以写到你手抽筋,其实我们可以在执行post方法或get方法之前进行登陆状态的验证,用装饰器进行这么一个功能扩充就可以了 decrator.py #处理刷新页面的请求 def…
一: 设计表: user:   ID,  PWD,  name,  type archiveRecord:     referdate,   archiveNum,   owner,   user,  status,   returndate. 二: 数据库操作接口实现: 新建用户:user表, 管理员类型可以增加,删除,修改 用户. 对archive表:  增加, 删除, 改 archive检索: 6个字段可以组合查询:…
转自:https://cloud.tencent.com/developer/article/1164332 简介: 目的: 电商常用功能模块的数据库设计 常见问题的数据库解决方案 环境: MySQL5.7 图形客户端,SQLyog Linux 模块: 用户:注册.登陆 商品:浏览.管理 订单:生成.管理 仓配:库存.管理 电商实例数据库结构设计 电商项目用户模块 用户表涉及的实体 改进1:第三范式:将依赖传递的列分离出来.比如:登录名<-用户级别<-级别积分上限,级别积分下限 改进2:尽量做…
1.邻接表(Adjacency List) 实例:现在有一个要存储一下公司的人员结构,大致层次结构如下: 那么怎么存储这个结构?并且要获取以下信息: 1.查询小天的直接上司. 2.查询老宋管理下的直属员工. 3.查询小天的所有上司. 4.查询老王管理的所有员工. 方案一.(Adjacency List)只存储当前节点的父节点信息. -- -- MySQL树结构 -- -- Author: xielong Email:cnxielong@gmail.com -- -- 建表 -- DROP TAB…
公司准备开发一套工作流引擎,以前没有什么OA开发经验,也是第一次设计工作流引擎,我把我的一些思路分享一下,希望得到些帮助或者能帮助到一些人. 产品的定位: 1.能够做到前后端分离 2.可以做到项目的分离使用,通过接口来实现 3.支持复杂流程逻辑 例如: 填写加班表单->多人审核=>退回=>填写证明人=>指定人审核=>通过 或者 等等. 设计思想 一.通过对审批流程的分解可以得到三个动作  ,然后对这三个动作进行更细的分析得出结果如下:  1.提写表单 表单表:例如加班单 表单…
点赞 点赞的过程:数字增加,并在后台点赞表记录数据 需要发过去的数据:用户id,新闻id 用户id从session里获得,那新闻id怎么获取呢?这想到分页是循环新闻列表来展示内容,循环的新闻id可以做为参数传入事件中(在事件里发送ajax请求),看前端代码: <div class="content-list" id="content_list"> {% for item in new_list %} <div class="item&qu…
我之前写的session一般保存在服务器的内存里,那可以保存在缓存,或是数据库,那问题来了,不同地方,保存方式是不同的,所以需要定义不同的类,cache/redis/memcached类 session.py import config from hashlib import sha1 import os import time create_session_id = lambda: sha1(bytes('%s%s' % (os.urandom(16), time.time()), encod…
关于省市县的数据表的设计有两种方式: 一.将其设计成一张表 DROP TABLE IF EXISTS `system_district`; CREATE TABLE `system_district` ( `district_id` ) unsigned NOT NULL AUTO_INCREMENT COMMENT '区域ID', `parent_id` ) unsigned NOT NULL COMMENT '父ID', `district_name` ) NOT NULL COMMENT…
对于链接,点击获取标题时,本质发送ajax请求,然后去链接抓取信息,发布又是发送ajax请求 发布信息,还要有发布者的信息,并在信息表需要记录发布者的用户名,发布者的头像,发布者的id,而这些信息可以通过session获得(前提是设置session要设置了这些信息) 对于文字,没什么好说的,就一个发布时需要发送ajax请求 对于图片,选择图片和上传图片一起做,即选择完图片,图片就上传到后台,并且在页面上展示图片效果,本质上也是偷偷发请求,而且绑定不是常见的onclick事件,而是onchange…
知识点应用:标签绑定事件,jQuery获取用户值-->AJAX发送数据-->后台路由系统-->业务逻辑处理-->ORM数据操作-->write返回-->AJAX回调函数接收-->页面效果显示 第一步:我们要给前端的获取验证码按钮绑定一个onclick事件--发送邮件验证码 找到views下home  index.html找到标签,onclick=SendCode(this) 定义事件,获取邮箱,发送ajax请求 jQuery代码如下: function SendC…
1.选择优化的数据类型 MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要.不管选择何种类型,下面的简单原则都会有助于做出更好的选择: (1).更小通常更好 一般来说,要试着使用正确地存储和表示数据的最小类型.更小的数据类型通常更快,因为它们使用了更少的磁盘空间.内存和CPU缓存,而且需要的CPU周期也更少. 但是要确保不人低估需要保存的值,在架构中的多个地方增加数据类型的范围是一件极其费力的工作.如果不确实需要什么数据类型,就选择你认为不会超出范围的最小类型. (…