02 商品的增删改

需求:
1.商品表的管理包括:CRUD、搜索、排序、翻页
2.考虑到SQL注入、XSS
3.使用JS插件:时间插件、在线编辑器

使用技术:表单自动验证(TP自动验证)

实际操作:
1.建商品表
a)表都加前缀
b)所有的字段选择最小的数据类型,如id可以使用mediumint比INT节省25%的空间
c)尽量所有的字段都设置为NOT NULL的,这样能让速度更快
d)为合适的字段(将来用来查询或者排序的字段)建索引

sql语句:
USE php34;
SET NAMES utf8;

# tinyint : 0~255
# smallint : 0~ 65535
# mediumint : 0~1千6百多万
# int : 0~40多亿
# char 、varchar 、 text容量?
# char    :0~255个字符
# varchar : 0~65535 字节 看表编码,如果是utf8存2万多汉字 gbk存3万多汉字
# text    : 0~65535 字符
CREATE TABLE IF NOT EXISTS php34_goods
(
    id mediumint unsigned not null auto_increment,
    goods_name varchar(45) not null comment '商品名称',
    logo varchar(150) not null default '' comment '商品logo',
    sm_logo varchar(150) not null default '' comment '商品缩略图logo',
    price decimal(10,2) not null default '0.00' comment '商品价格',
    goods_desc longtext comment '商品描述',
    is_on_sale tinyint unsigned not null default '1' comment '是否上架:1:上架,0:下架',
    is_delete tinyint unsigned not null default '0' comment '是否已经删除,1:已经删除 0:未删除',
    addtime int unsigned not null comment '添加时间',
    primary key (id),
    key price(price),
    key is_on_sale(is_on_sale),
    key is_delete(is_delete),
    key addtime(addtime)
)engine=MyISAM default charset=utf8;
#说明:当要使用LIKE 查询并以%开头时,不能使用普通索引,只以使用全文索引,如果使用了全文索引:
#SELECT * FROM php34_goods WHERE MATCH goods_name AGAINST 'xxxx';
# 但MYSQL自带的全文索引不支持中文,所以不能使用MYSQL自带的全文索引功能,所以如果要优化只能使用第三方的全文索引## 引擎,如:sphinx,lucence等。


sql导入数据库的几种方式:
1.使用phpmyadmin直接复制执行SQL
2.在命令行使用source D:/xxxx/db.sql
3.把SQL直接复制到命令行中执行 注意,如果使用这种方法,必须先设置编辑为gbk的。set names gbk;

 

posted @ 2015-09-16 00:11  麦田守望者~  阅读(193)  评论(0编辑  收藏  举报