电商项目通用用户模块数据表结构设计

将用户模块分割成多表,做成冷热数据分离

/*用户登陆表*/

CREATE TABLE customer_login (
customer_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '用户ID',
login_name VARCHAR(20) NOT NULL COMMENT '用户登录名',
password CHAR(32) NOT NULL COMMENT 'MD5加密后的密码',
user_status TINYINT NOT NULL DEFAULT 1 COMMENT '用户状态',
modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后的修改时间',
PRIMARY KEY pk_customerid ( customer_id )
) ENGINE = INNODB COMMENT = '用户登录表';

/*用户信息表*/

CREATE TABLE customer_inf (
customer_inf_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键自增ID',
customer_id INT UNSIGNED NOT NULL COMMENT 'customer_login表的自增ID',
customer_name VARCHAR ( 20 ) NOT NULL COMMENT '用户的真实姓名',
identity_card_type TINYINT NOT NULL DEFAULT 1 COMMENT '证件类型 1身份证,2军官证,3护照',
mobile_phone INT UNSIGNED COMMENT '手机号',
customer_email VARCHAR ( 50 ) COMMENT '邮箱',
gender CHAR ( 1 ) COMMENT '性别',
user_point INT NOT NULL DEFAULT 0 COMMENT '会员积分',
register_time TIMESTAMP NOT NULL COMMENT '注册时间',
birthday datetime COMMENT '会员生日',
customer_level TINYINT NOT NULL DEFAULT 1 COMMENT '会员级别',
user_money DECIMAL ( 8, 2 ) NOT NULL DEFAULT 0.00 COMMENT '用户余额',
modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
PRIMARY KEY pk_costomerinfid ( customer_inf_id )
) ENGINE = INNODB COMMENT '用户信息表';

/*用户等级信息表*/

CREATE TABLE customer_leval_inf (
customer_level TINYINT NOT NULL auto_increment COMMENT '会员级别ID',
level_name VARCHAR ( 10 ) NOT NULL COMMENT '会员级别名称',
min_point INT UNSIGNED NOT NULL COMMENT '该级别最低分值',
max_point INT UNSIGNED NOT NULL COMMENT '该级别最高分值',
modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后的修改时间',
PRIMARY KEY pk_levelid ( customer_level )
) ENGINE = INNODB COMMENT '用户级别信息表';

/*用户地址信息表*/

CREATE TABLE customer_addr (
customer_addr_id INT UNSIGNED auto_increment NOT NULL COMMENT '自增主键ID',
customer_id INT UNSIGNED NOT NULL COMMENT 'customer_login表的主键',
zip SMALLINT NOT NULL COMMENT '邮编',
province SMALLINT NOT NULL COMMENT '地区表中省份的ID',
city SMALLINT NOT NULL COMMENT '地区表中的城市ID',
district SMALLINT NOT NULL COMMENT '地区表中的区ID',
address VARCHAR ( 200 ) NOT NULL COMMENT '具体的门牌号',
is_default TINYINT NOT NULL COMMENT '是否默认',
modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
PRIMARY KEY pk_customeraddid ( customer_addr_id )
) ENGINE = INNODB COMMENT '用户地址表';

/*用户积分日志表*/

CREATE TABLE customer_point_log (
point_id INT UNSIGNED NOT NULL auto_increment COMMENT '积分日志ID',
customer_id INT UNSIGNED NOT NULL COMMENT '用户ID',
source TINYINT UNSIGNED NOT NULL COMMENT '积分来源',
refer_number INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '积分来源相关编号',
change_point SMALLINT NOT NULL DEFAULT 0 COMMENT '变更积分数',
create_time TIMESTAMP NOT NULL COMMENT '积分日志生成时间',
PRIMARY KEY pk_pointid ( point_id )
) ENGINE = INNODB COMMENT '用户积分日志表';

/*用户余额变动表*/

CREATE TABLE customer_balance_log (
balance_id INT UNSIGNED NOT NULL auto_increment COMMENT '余额日志ID',
customer_id INT UNSIGNED NOT NULL COMMENT '用户ID',
source TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '记录来源',
source_sn INT UNSIGNED NOT NULL COMMENT '相关单据ID',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录生成时间',
amount DECIMAL ( 8, 2 ) NOT NULL DEFAULT 0.00 COMMENT '变动金额',
PRIMARY KEY pk_banlanceid ( balance_id )
) ENGINE = INNODB COMMENT '用户余额变动表';

/*用户登录日志表*/

CREATE TABLE customer_login_log (
login_id INT UNSIGNED NOT NULL auto_increment COMMENT '登录日志ID',
customer_id INT UNSIGNED NOT NULL COMMENT '登录用户ID',
login_time TIMESTAMP NOT NULL COMMENT '用户登录时间',
login_ip INT UNSIGNED NOT NULL COMMENT '登录ID',
login_type TINYINT NOT NULL COMMENT '登录结果 0未成功,1成功',
PRIMARY KEY pk_loginid ( login_id )
) ENGINE = INNODB COMMENT '用户登录日志表'

猜你喜欢

转载自www.cnblogs.com/yoxuc/p/11100517.html