- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
- python web(bottle框架)知行合一之-简单知识付费
python web(bottle框架)知行合一之-简单知识付费平台-”全栈“实践(6)---从前端页面分析数据库设计需求
PS:笔记只是为了更好表达我怎么语言表述,有些时候可能难免废话一推!
因知识有限, 如有错误, 欢迎指正.
每日细语 :没有什么成功是轻而易举的!想要得到要先学会付出!
前言
因为基于现有的环境,自己从头设计一个需求,比较头疼,所以我主要参考模仿别人的界面,总结出属于自己的需求。
以下是截图是来自插http://www.apppark.cn/应用公园中的悦享课堂应用示例的中的截图。
http://www.apppark.cn/themedetail_96.html,(PS截图仅仅作为项目数据库设计分析 不做其他用途如果侵权话,烦请联系我,我会删除掉!)
首页:
图片.png
精选课程:
图片.png登入:
图片.png
注册:
图片.png
找回密码:
图片.png
关于:
图片.png
分类:
这个不看了,界面太丑了!
分析实体的属性
PS:可能设计的的不是很合理,有什么设计不对的地方还希望各位多多指教一下哟!
用户信息表
{用户ID,是否激活,用户昵称,用户密码,头像图片地址,性别,注册时间,手机号码,注册邮箱,微信授权码}
课程
{课程号,课程名,课程标题,课程简单描述,课程详细的描述,课程介绍图片地址,课程状态(连载中,完结,筹备中),课程上线时间,总课程数(多少期),是否已下线,是否开启销售,是否免费,价钱,已学习人数,已更新了多少期,VIP是否免费,课程作者,课程类型(图文、音频、视频),课程添加时间}
课程详细内容
{课程内容编号,课程号,课程内容序号,内容标题,单独内容详细介绍,内容是否免费,内容创建时间,是否需要购买,购买的状态,有多少人浏览过,购买描述语,内容的文件地址(音频、视频地址),课程有效期}
课程分类
{课程分类编号,课程分类描述,课程号,分类说明,分类添加时间,分类图标地址,分类是否开启}
课程订单表
{订单号,课程号,用户号,是否还有效,购买支付方式,创建订单时间,是否已支付,支付时间,支付状态结果}
课程订单提交记录表
{归属订单号,课程号,课程名称,用户号,购买支付方式,创建订单时间,是否已支付,提交支付时间,支付状态结果}
首页精选推广课程活动表
{活动号,课程号,课程大图地址,活动名称,活动描述,活动创建时间,活动是否开启,活动是否过了有效期}
公告表
{公告号,公告名称,公告描述,公告创建时间,公告是否开启}
关于
写死静态页面
联系方式
写死静态页面
数据库模型到关系模型
PS:大神的博文地址!
http://www.cnblogs.com/EmptyFS/p/7484030.html
可以按大神给的数据库生成的工具类来生成相关的数据表!
工具类下载地址:https://pan.baidu.com/s/1slDMsyx
详细的表结构设计
用户信息表
属性:
{用户ID,是否激活,用户昵称,用户密码,头像图片地址,性别,注册时间,手机号码,注册邮箱,是否是VIP,微信授权码}
图片.png
课程
属性:
{课程号,课程名,课程标题,课程简单描述,课程详细的描述,课程介绍图片地址,课程状态(连载中,完结,筹备中),课程上线时间,总课程数(多少期),是否已下线,是否开启销售,是否免费,价钱,已学习人数,已更新了多少期,VIP是否免费,课程作者,课程 类型,课程添加时间}
图片.png
课程详细内容
属性:
{课程内容编号,课程号,课程内容序号,内容标题,单独内容详细介绍,内容是否免费,内容创建时间,有多少人浏览过,购买描述语,内容的文件地址(音频、视频地址),课程有效期}
课程分类
属性:
{课程分类编号,课程分类描述,课程号,分类说明,分类添加时间,分类图标地址,分类是否开启}
课程订单表
属性:
{订单号,课程号,用户号,是否还有效,购买支付方式,订单生成时间,是否已支付,支付时间,支付状态描述}
首页精选推广课程活动表
属性:
{活动号,课程号,课程大图地址,活动名称,活动描述,活动创建时间,活动是否开启,活动是否过了有效期}
公告表
属性:
{公告号,公告名称,公告描述,公告创建时间,公告是否开启}
估计设计的地方,其实有问题的, 后续可能还会做出相应的结构变化!
关系数据表生成
我们已设计好了对于的数据库关系表,现在我们的需要就是在本地上进行创建相关的数据表,便于后续在本地进行调试。
首先我们使用大神提供的工具进行SQL的生成。
关闭我们的数据字典表。打开工具:
图片.png
记住表1的名称:
图片.png
点击运行:
图片.png
SQL生成完成:
图片.png最终的SQL语句如下:
CREATE TABLE public.user_info (
id serial,
is_activate integer DEFAULT 0,
phone_num text DEFAULT '' NOT NULL,
nick_name text DEFAULT '' NOT NULL,
pass_word text DEFAULT '' NOT NULL,
gender text DEFAULT '',
head_cover text DEFAULT '',
register_time timestamp(0) WITHOUT TIME ZONE DEFAULT now(),
e_mail text DEFAULT '',
is_vip integer,
wx_access_token text DEFAULT '',
CONSTRAINT user_info_pkey PRIMARY KEY(id)
)
WITH(oids = false);
COMMENT ON TABLE public.user_info IS '用户信息表';
COMMENT ON COLUMN public.user_info.id IS '主键Id';
COMMENT ON COLUMN public.user_info.is_activate IS '是否已激活1=true(已激活),0=false(未激活)';
COMMENT ON COLUMN public.user_info.phone_num IS '用户注册手机号码';
COMMENT ON COLUMN public.user_info.nick_name IS '用户昵称';
COMMENT ON COLUMN public.user_info.pass_word IS '密码';
COMMENT ON COLUMN public.user_info.gender IS '性别';
COMMENT ON COLUMN public.user_info.head_cover IS '头像图片地址';
COMMENT ON COLUMN public.user_info.register_time IS '注册时间';
COMMENT ON COLUMN public.user_info.e_mail IS '邮箱地址';
COMMENT ON COLUMN public.user_info.is_vip IS '是否是VIP(1,是, 0 不是)';
COMMENT ON COLUMN public.user_info.wx_access_token IS '微信授权码(可能会用到)';
CREATE INDEX user_info_phone_num_idx ON public.user_info USING btree(phone_num);
CREATE TABLE public.course (
id serial,
course_classify_code text DEFAULT '',
course_code_id text DEFAULT '',
name text DEFAULT '' NOT NULL,
title text DEFAULT '' NOT NULL,
describe_simple integer DEFAULT 0,
describe_detailed text DEFAULT 'now' NOT NULL,
img_cover text DEFAULT '' NOT NULL,
state integer DEFAULT 0,
up_time timestamp(0) WITHOUT TIME ZONE,
all_num_count integer DEFAULT 0,
is_down integer DEFAULT 1,
is_sell integer DEFAULT 1,
is_flee integer DEFAULT 1,
price integer DEFAULT 0 NOT NULL,
has_learn_num integer,
has_updata_num_count integer,
is_vip_flee integer,
author text DEFAULT '',
add_time text DEFAULT '',
type integer DEFAULT 3,
CONSTRAINT course_pkey PRIMARY KEY(id)
)
WITH(oids = false);
COMMENT ON TABLE public.course IS '课程';
COMMENT ON COLUMN public.course.id IS '主键Id';
COMMENT ON COLUMN public.course.course_classify_code IS '课程分类编号';
COMMENT ON COLUMN public.course.course_code_id IS '课程号';
COMMENT ON COLUMN public.course.name IS '课程名';
COMMENT ON COLUMN public.course.title IS '课程标题';
COMMENT ON COLUMN public.course.describe_simple IS '课程简单描述';
COMMENT ON COLUMN public.course.describe_detailed IS '课程详细描述';
COMMENT ON COLUMN public.course.img_cover IS '课程图片介绍';
COMMENT ON COLUMN public.course.state IS '程状态(1连载中,2 完结,0筹备中)';
COMMENT ON COLUMN public.course.up_time IS '课程上线时间';
COMMENT ON COLUMN public.course.all_num_count IS '总课程数(多少期)';
COMMENT ON COLUMN public.course.is_down IS '是否已下线(1,没有, 0 下线)';
COMMENT ON COLUMN public.course.is_sell IS '是否开启销售(1,已开始, 0 未开始)';
COMMENT ON COLUMN public.course.is_flee IS '是否免费(1,收费, 0 不收费)';
COMMENT ON COLUMN public.course.price IS '价钱';
COMMENT ON COLUMN public.course.has_learn_num IS '已经学习人数';
COMMENT ON COLUMN public.course.has_updata_num_count IS '已更新了多少期';
COMMENT ON COLUMN public.course.is_vip_flee IS 'VIP是否免费(1,VIP免费,0 VIP也不免费)';
COMMENT ON COLUMN public.course.author IS '课程作者';
COMMENT ON COLUMN public.course.add_time IS '添加时间';
COMMENT ON COLUMN public.course.type IS '课程类似(1图文,2 音频,3,视频)';
CREATE INDEX course_course_classify_code_idx ON public.course USING btree(course_classify_code);
CREATE INDEX course_name_idx ON public.course USING btree(name);
CREATE INDEX course_type_idx ON public.course USING btree(type);
CREATE TABLE public.course_content (
id serial,
code text DEFAULT '',
course_code_id integer DEFAULT 0,
content_index integer,
title text DEFAULT '',
content_detailed text DEFAULT '',
is_flee text DEFAULT '',
visit_count integer,
buy_describe text DEFAULT '',
is_enable integer DEFAULT 0,
content_file_url text DEFAULT '',
expiry_date timestamp(0) WITHOUT TIME ZONE,
add_time timestamp(0) WITHOUT TIME ZONE DEFAULT now() NOT NULL,
CONSTRAINT course_content_pkey PRIMARY KEY(id)
)
WITH(oids = false);
COMMENT ON TABLE public.course_content IS '课程详细内容';
COMMENT ON COLUMN public.course_content.id IS '主键Id';
COMMENT ON COLUMN public.course_content.code IS '课程内容编号';
COMMENT ON COLUMN public.course_content.course_code_id IS '课程号';
COMMENT ON COLUMN public.course_content.content_index IS '课程内容序号';
COMMENT ON COLUMN public.course_content.title IS '内容标题';
COMMENT ON COLUMN public.course_content.content_detailed IS '内容详细介绍';
COMMENT ON COLUMN public.course_content.is_flee IS '是否免费(1,免费,0 不免费)';
COMMENT ON COLUMN public.course_content.visit_count IS '浏览次数';
COMMENT ON COLUMN public.course_content.buy_describe IS '购买描述语';
COMMENT ON COLUMN public.course_content.is_enable IS '是否启用,1=true(启用),0=false(禁用)';
COMMENT ON COLUMN public.course_content.content_file_url IS '内容文件地址';
COMMENT ON COLUMN public.course_content.expiry_date IS '课程有效期时间';
COMMENT ON COLUMN public.course_content.add_time IS '创建时间';
CREATE INDEX course_content_code_idx ON public.course_content USING btree(code);
CREATE INDEX course_content_course_code_id_idx ON public.course_content USING btree(course_code_id);
CREATE INDEX course_content_expiry_date_idx ON public.course_content USING btree(expiry_date);
CREATE TABLE public.course_classify (
id serial,
course_classify_code text DEFAULT '' NOT NULL,
describe text DEFAULT '' NOT NULL,
course_code_id timestamp(0) WITHOUT TIME ZONE,
icon_url text DEFAULT '',
is_enable integer DEFAULT 1,
add_time timestamp(0) WITHOUT TIME ZONE DEFAULT now() NOT NULL,
CONSTRAINT course_classify_pkey PRIMARY KEY(id)
)
WITH(oids = false);
COMMENT ON TABLE public.course_classify IS '课程分类表';
COMMENT ON COLUMN public.course_classify.id IS '主键Id';
COMMENT ON COLUMN public.course_classify.course_classify_code IS '课程分类编号';
COMMENT ON COLUMN public.course_classify.describe IS '课程描述';
COMMENT ON COLUMN public.course_classify.course_code_id IS '课程号';
COMMENT ON COLUMN public.course_classify.icon_url IS '分类图标地址';
COMMENT ON COLUMN public.course_classify.is_enable IS '是否启用,1=true(启用),0=false(禁用)';
COMMENT ON COLUMN public.course_classify.add_time IS '创建时间';
CREATE INDEX course_classify_course_classify_code_idx ON public.course_classify USING btree(course_classify_code);
CREATE INDEX course_classify_course_code_id_idx ON public.course_classify USING btree(course_code_id);
CREATE INDEX course_classify_is_enable_idx ON public.course_classify USING btree(is_enable);
CREATE TABLE public.course_order (
id serial,
order_id text DEFAULT '' NOT NULL,
course_code_id text DEFAULT '' NOT NULL,
phone_num text DEFAULT '',
course_name text DEFAULT '',
pay_type text DEFAULT '0',
is_pay integer DEFAULT 1,
pay_time timestamp(0) WITHOUT TIME ZONE,
add_time timestamp(0) WITHOUT TIME ZONE DEFAULT now() NOT NULL,
pay_state_describe integer DEFAULT 1,
CONSTRAINT course_order_pkey PRIMARY KEY(id)
)
WITH(oids = false);
COMMENT ON TABLE public.course_order IS '课程订单表';
COMMENT ON COLUMN public.course_order.id IS '主键Id';
COMMENT ON COLUMN public.course_order.order_id IS '订单编号';
COMMENT ON COLUMN public.course_order.course_code_id IS '课程号';
COMMENT ON COLUMN public.course_order.phone_num IS '购买了课程的用户手机号码';
COMMENT ON COLUMN public.course_order.course_name IS '购买的课程名称';
COMMENT ON COLUMN public.course_order.pay_type IS '登陆次数';
COMMENT ON COLUMN public.course_order.is_pay IS '是否已支付1=true,0=false';
COMMENT ON COLUMN public.course_order.pay_time IS '支付时间';
COMMENT ON COLUMN public.course_order.add_time IS '订单生成时间';
COMMENT ON COLUMN public.course_order.pay_state_describe IS '支付状态描述';
CREATE INDEX course_order_order_id_idx ON public.course_order USING btree(order_id);
CREATE INDEX course_order_course_code_id_idx ON public.course_order USING btree(course_code_id);
CREATE INDEX course_order_phone_num_idx ON public.course_order USING btree(phone_num);
CREATE INDEX course_order_is_pay_idx ON public.course_order USING btree(is_pay);
CREATE TABLE public.activity (
id serial,
activity_id text DEFAULT '' NOT NULL,
course_code_id text DEFAULT '' NOT NULL,
course_img_cover text DEFAULT '' NOT NULL,
activity_name text DEFAULT '' NOT NULL,
is_enable integer DEFAULT 0,
activity_describe text DEFAULT '',
add_time timestamp(0) WITHOUT TIME ZONE DEFAULT now() NOT NULL,
expiry_date timestamp(0) WITHOUT TIME ZONE,
CONSTRAINT activity_pkey PRIMARY KEY(id)
)
WITH(oids = false);
COMMENT ON TABLE public.activity IS '首页精选推广课程活动表';
COMMENT ON COLUMN public.activity.id IS '主键Id';
COMMENT ON COLUMN public.activity.activity_id IS '活动编号ID';
COMMENT ON COLUMN public.activity.course_code_id IS '课程号';
COMMENT ON COLUMN public.activity.course_img_cover IS '课程大图地址';
COMMENT ON COLUMN public.activity.activity_name IS '活动名称';
COMMENT ON COLUMN public.activity.is_enable IS '是否启用,1=true(启用),0=false(禁用)';
COMMENT ON COLUMN public.activity.activity_describe IS '活动的描述';
COMMENT ON COLUMN public.activity.add_time IS '活动创建时间';
COMMENT ON COLUMN public.activity.expiry_date IS '活动有效期时间';
CREATE INDEX activity_activity_id_idx ON public.activity USING btree(activity_id);
CREATE INDEX activity_course_code_id_idx ON public.activity USING btree(course_code_id);
CREATE INDEX activity_is_enable_idx ON public.activity USING btree(is_enable);
CREATE INDEX activity_add_time_idx ON public.activity USING btree(add_time);
CREATE INDEX activity_expiry_date_idx ON public.activity USING btree(expiry_date);
CREATE TABLE public.announcement (
id serial,
announcement_id text DEFAULT '' NOT NULL,
announcement_name text DEFAULT '' NOT NULL,
is_enable integer DEFAULT 0,
announcement_describe text DEFAULT '',
CONSTRAINT announcement_pkey PRIMARY KEY(id)
)
WITH(oids = false);
COMMENT ON TABLE public.announcement IS '首页精选推广课程活动表';
COMMENT ON COLUMN public.announcement.id IS '主键Id';
COMMENT ON COLUMN public.announcement.announcement_id IS '活动编号ID';
COMMENT ON COLUMN public.announcement.announcement_name IS '公告名称';
COMMENT ON COLUMN public.announcement.is_enable IS '是否启用,1=true(启用),0=false(禁用)';
COMMENT ON COLUMN public.announcement.announcement_describe IS '公告的描述';
CREATE INDEX announcement_announcement_id_idx ON public.announcement USING btree(announcement_id);
CREATE INDEX announcement_is_enable_idx ON public.announcement USING btree(is_enable);
使用navicat Premium创建数据库:
图片.png
新建一个查询(命名为数据库表初始化)
图片.png
把上面的SQL复制到新建的查询中,运行:
图片.png关于数据库表设计相关暂时到此结束
以上笔记纯属个人学习实践总结,有兴趣的同学可以加群一起学习讨论QQ群:148824367
网友评论