-- application:			youpin
-- author:				leisure.xu
-- date:				2012-09-24

-- ##########################################################################################
-- #                                      应用相关表                                                                                  #
-- ##########################################################################################
-- 用于告诉后台哪些类别需要爬取的

CREATE TABLE yp_spider_category(
	id			INT				PRIMARY KEY		COMMENT '爬取的类别的id',
	name		VARCHAR(50)		COMMENT '类别名称',
	cat_id		BIGINT			COMMENT '淘宝类别id',
	status		INT				COMMENT '是否生效'
) COMMENT = '爬取的类别表';

CREATE TABLE yp_product(
	id			INT				PRIMARY KEY		COMMENT '商品id',
	num_iid		BIGINT			COMMENT '商品id(for tmall)',
	name		VARCHAR(50)		COMMENT '商品名称',
	pic_url		VARCHAR(255)	COMMENT '商品主图片地址',
	detail_url	VARCHAR(255)	COMMENT '商品详细链接',
	nick		VARCHAR(50)		COMMENT '商家',
	price		DOUBLE			COMMENT '价格',
	num			INT				COMMENT '商品数量',
	favorite	INT				COMMENT '收藏数，每收藏一次+1，取消收藏-1',
	is_hot		SMALLINT(2)		COMMENT '是否热门',			-- 设为热门
	hot_time	DATETIME		COMMENT '设为热门时间,当且仅当is_hot=1时才生效',
	status		INT				COMMENT '状态',
	create_by	VARCHAR(50)		COMMENT '创建者',
	create_date	DATETIME		COMMENT '创建时间',
	update_by	VARCHAR(50)		COMMENT '更新者',
	update_date	DATETIME		COMMENT '更新时间'
) COMMENT = '商品表';

CREATE TABLE yp_product_price(
	-- ?
) COMMENT = '商品折扣优惠表';

CREATE TABLE yp_product_image(
	id			INT				PRIMARY KEY		COMMENT '商品图片id',
	product_id	INT				COMMENT '商品id',
	src			VARCHAR(255)	COMMENT '商品图片地址'
) COMMENT = '商品图片表';

CREATE TABLE yp_category(
	id			INT				PRIMARY KEY 	COMMENT '类别id',
	parent_id	INT				COMMENT '父类id',
	name		VARCHAR(50)		COMMENT '类别名称',
	status		INT				COMMENT '状态'
) COMMENT = '商品类目表';

CREATE TABLE yp_tag(
	id			INT				PRIMARY KEY 	COMMENT '标签id',
	name		VARCHAR(50)		COMMENT '标签名称',
	input_type	SMALLINT(2)		COMMENT '后台输入方式：1单选 2多选',
	status		INT				COMMENT '状态'
) COMMENT = '标签表';

CREATE TABLE yp_tag_option(
	id			INT				PRIMARY KEY		COMMENT '标签选项id',
	tag_id		INT				COMMENT '标签id',
	name		VARCHAR(50)		COMMENT '选项名称'
) COMMENT = '标签选项表';

CREATE TABLE yp_product_option(
	id			INT				PRIMARY KEY		COMMENT 'id',
	product_id	INT				COMMENT '产品id',
	tag_id		INT				COMMENT '标签id,冗余字段',
	option_id	INT				COMMENT '选项id',
) COMMENT = '产品选项表';

-- ##########################################################################################
-- #                                      用户相关表                                                                                  #
-- ##########################################################################################
CREATE TABLE yp_user(
	id			INT				PRIMARY KEY		COMMENT '用户id',
	passport_id	INT				COMMENT '通行证id',
	nick		VARCHAR(50)		COMMENT '用户昵称',
	face		VARCHAR(255)	COMMENT '用户头像 80x80',
	sign 		VARCHAR(255)	COMMENT '用户个性签名',
	status		INT				COMMENT '用户状态'
) COMMENT = '用户表';

CREATE TABLE yp_user_favorite(
	id			INT				PRIMARY KEY		COMMENT 'id',
	user_id		INT				COMMENT '用户id',
	product_id	INT				COMMENT '商品id',
	favorite_time	DATETIME	COMMENT '收藏时间'
) COMMENT = '用户收藏表';

CREATE TABLE yp_user_record(
	id			INT				PRIMARY KEY		COMMENT 'id',
	user_id		INT				COMMENT '用户id',
	product_id	INT				COMMENT '商品id',
	visit_time	DATETIME		COMMENT '浏览时间'
) COMMENT = '用户浏览记录表';

CREATE TABLE yp_user_test(
	id			INT				PRIMARY KEY		COMMENT 'id',
	-- result	?
	test_time	DATETIME		COMMENT '测试时间'
) COMMENT = '用户测试记录表';


-- ##########################################################################################
-- #                                      主题相关表                                                                                  #
-- ##########################################################################################
CREATE TABLE yp_theme(
	id			INT				PRIMARY KEY 	COMMENT '主题id',
	name		VARCHAR(50)		COMMENT '主题名称',
	logo		VARCHAR(50)		COMMENT '主题封面',
	status		INT				COMMENT '主题状态',
	intro		TEXT			COMMENT '主题描述',
	seq			INT				COMMENT '排序'
) COMMENT = '主题表';

CREATE TABLE yp_theme_line(
	id			INT				PRIMARY KEY 	COMMENT '行id',
	theme_id	INT				COMMENT '主题id',
	style		SMALLINT(2)		COMMENT '行模版 1一行一图 2一行二图 4一行四图 5一行五图 7一行七图',
	seq			SMALLINT(2)		COMMENT '行排序'
);

CREATE TABLE yp_theme_line_image(
	id			INT				PRIMARY KEY		COMMENT '主题图片id',
	product_id	INT				COMMENT '商品id',
	-- src			VARCHAR(50)		COMMENT '图片地址', 直接读取产品的封面
	-- link		VARCHAR(50)		COMMENT '图片链接', 直接读取产品的链接
	seq			INT				COMMENT '排序'
) COMMENT = '主题图片表';

-- ##########################################################################################
-- #                                      评论相关表                                                                                  #
-- ##########################################################################################
CREATE TABLE yp_comment(
	id			INT				PRIMARY KEY		COMMENT '评论id',
	passport_id	INT				COMMENT '用户id',
	product_id	INT				COMMNET '产品id',
	content		TEXT			COMMENT '评论内容',
	status		SMALLINT(2)		COMMENT '审核状态'
) COMMENT = '评论表';

-- ##########################################################################################
-- #                                      系统相关表                                                                                  #
-- ##########################################################################################
CREATE TABLE sec_acl (
		resource_id 	VARCHAR(50) ,
		role_id 		INT(10) UNSIGNED 		NOT NULL ,
		user_id 		INT(10) UNSIGNED 		NOT NULL ,
		application 	VARCHAR(50) ,
		account_id 		INT(10) UNSIGNED 		NOT NULL,
    	PRIMARY KEY (resource_id, role_id, user_id, application)
 ) COMMENT='用户';

CREATE TABLE sec_function (
		id 				INT(10) UNSIGNED 		NOT NULL ,
		`name` 			VARCHAR(50) ,
		rank 			SMALLINT(5) UNSIGNED ,
		application 	VARCHAR(50) ,
		display_order 	SMALLINT(5) UNSIGNED ,
		PRIMARY KEY (id)
) COMMENT='功能';
ALTER TABLE `sec_function` ADD COLUMN `url` VARCHAR(255) NULL AFTER `display_order`;

CREATE TABLE sec_role (
		id 				INT(10) UNSIGNED 		NOT NULL 	AUTO_INCREMENT COMMENT 'id',
		`name` 			VARCHAR(50) ,
		description 	VARCHAR(125) ,
		rank 			SMALLINT(5) UNSIGNED ,
		application 	VARCHAR(50) ,
		display_order 	SMALLINT(5) UNSIGNED ,
		PRIMARY KEY (id)
 ) COMMENT='角色';

CREATE TABLE sec_role_function (
	role_id 			INT(10) UNSIGNED 		NOT NULL ,
	function_id 		INT(10) UNSIGNED ,
	application 		VARCHAR(50) ,
	PRIMARY KEY (role_id, function_id, application)
 ) COMMENT='角色功能';
 
-- 日志表
CREATE TABLE ge_log (
	id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id',
	function_type VARCHAR(50) DEFAULT NULL COMMENT '功能类型',
	operate_type VARCHAR(50) DEFAULT NULL COMMENT '操作类型',
	result VARCHAR(20) DEFAULT NULL COMMENT '结果',
	ip VARCHAR(50) DEFAULT NULL COMMENT 'ip',
	create_by VARCHAR(30) DEFAULT NULL COMMENT '创建人',
	create_date TIMESTAMP COMMENT '创建时间',
	content TEXT COMMENT '内容',
	PRIMARY KEY (id)
) COMMENT='日志';