学成在线项目数据库表结构分析

1. cms-config 配置

解释
“_id”ObjectId(“5a791725dd573c3574ee333f”),
“_class”“com.xuecheng.framework.domain.cms.CmsConfig”
“name”“轮播图”、精品推荐、分类信息
“model”json格式的数据模型

例子

{ 
    "_id" : ObjectId("5a791725dd573c3574ee333f"), 
    "_class" : "com.xuecheng.framework.domain.cms.CmsConfig", 
    "name" : "轮播图", 
    "model" : [
        {
            "key" : "banner1", 
            "name" : "轮播图1地址", 
            "value" : "http://192.168.101.64/group1/M00/00/01/wKhlQFp5wnCAG-kAAATMXxpSaMg864.png"
        }, 
        {
            "key" : "banner2", 
            "name" : "轮播图2地址", 
            "value" : "http://192.168.101.64/group1/M00/00/01/wKhlQVp5wqyALcrGAAGUeHA3nvU867.jpg"
        }, 
        {
            "key" : "banner3", 
            "name" : "轮播图3地址", 
            "value" : "http://192.168.101.64/group1/M00/00/01/wKhlQFp5wtWAWNY2AAIkOHlpWcs395.jpg"
        }
    ]
}
查询此表
  1. 条件查询
 		//条件查询
 		int size=9;
        int page=1;
        Pageable pageable=PageRequest.of(page,size);
        CmsPage cmsPage = new CmsPage();
        cmsPage.setSiteId("5a751fab6abb5044e0d19ea1");
        ExampleMatcher matching = ExampleMatcher.matching();
        Example< CmsPage> example=Example.of(cmsPage,matching);
        Page<CmsPage> all = cmsPageRepository.findAll(example, pageable);
        System.out.println(all.getContent());
  1. 模糊查询
//只需要在匹配器上设置参数就行
cmsPage.setPageAliase("轮播");
matching=matching.withMatcher("pageAliase",ExampMatcher.GenericPropertyMatchers.contains());

2. cms-page 页面信息

解释
“_class”“com.xuecheng.framework.domain.cms.CmsPage”
“siteId”站点ID — “5a751fab6abb5044e0d19ea1”
“pageName”“index.html” 页面名称
“pageAliase”页面别名
“pageWebPath”访问地址 — “/index.html”
“pagePhysicalPath”物理地址 --“F:\develop\xc_portal_static\”
“pageType”静态页面或者动态页面 “0”
“pageCreateTime”创建时间 ISODate(“2018-02-03T05:37:53.256+0000”)
“templateId”模板ID—“5a962b52b00ffc514038faf7”
“htmlFileId”“5a7c1c54d019f14d90a1fb23”
{ 
    "_id" : ObjectId("5a754adf6abb500ad05688d9"), 
    "_class" : "com.xuecheng.framework.domain.cms.CmsPage", 
    "siteId" : "5a751fab6abb5044e0d19ea1", 
    "pageName" : "index.html", 
    "pageAliase" : "首页", 
    "pageWebPath" : "/index.html", 
    "pagePhysicalPath" : "F:\\develop\\xc_portal_static\\", 
    "pageType" : "0", 
    "pageCreateTime" : ISODate("2018-02-03T05:37:53.256+0000"), 
    "templateId" : "5a962b52b00ffc514038faf7", 
    "htmlFileId" : "5a7c1c54d019f14d90a1fb23"
}

cms-site 站点数据

解释
_idObjectId( 5a751fab6abb5044e0d19ea1 ) page数据中的siteID
_classcom.xuecheng.framework.domain.cms.CmsSite
siteName门户主站
siteDomainhttp
sitePort80 ,
siteWebPath/
siteCreateTimeISODate( 2018-02-03T02
{ 
    "_id" : ObjectId("5a751fab6abb5044e0d19ea1"), 
    "_class" : "com.xuecheng.framework.domain.cms.CmsSite", 
    "siteName" : "门户主站", 
    "siteDomain" : "http://localhost", 
    "sitePort" : "80", 
    "siteWebPath" : "/", 
    "siteCreateTime" : ISODate("2018-02-03T02:34:19.113+0000")
}

cms-site-server 服务器信息

解释
_idObjectId(5a754bdb6abb500ad05688db)
_classcom.xuecheng.framework.domain.cms.CmsSiteServer
ip127.0.0.1
port80
webPath/
serverName门户服务器
uploadPath/upload
siteId5a751fab6abb5044e0d19ea1

cms-template 模板信息

解释
_idObjectId(5a925be7b00ffc4b3c1578b5)
_classcom.xuecheng.framework.domain.cms.CmsTemplate
siteId5a751fab6abb5044e0d19ea1
templateName模板名称 课程详情页面
templateParametercourseid
templateFileId模板文件ID 5ad8a51f68db5240b42e5fea

fileSystem 文件系统 fastDFS

解释
_idgroup1/M00/00/01/wKhlQFp5fGiAUSkDAAARA0xqVgo187.png
_classcom.xuecheng.framework.domain.filesystem.FileSystem
filePathgroup1/M00/00/01/wKhlQFp5fGiAUSkDAAARA0xqVgo187.png
fileSizeNumberLong(4355)
fileNameasset-logo.png
fileTypeimage/png
fileWidthNumberInt(0)
fileHeightNumberInt(0)

fs.chunks 大文件存储

解释
_idObjectId(5a7719d76abb5042987eec3b)
files_idObjectId(5a7719d76abb5042987eec3a)
nNumberInt(0)
dataBinData(0,“大文件字符码” )

在这里插入图片描述

fs.file 文件存储

解释
_idObjectId(5a7719d76abb5042987eec3a)
metadata{cms-page的所有信息}
filenameindex.html
aliasesnull
chunkSizeNumberLong(261120)
uploadDateISODate(2018-02-04T14
lengthNumberLong(33595)
contentTypenull
md5abea232200712179ed3dce1505c1be46

sys-dictionary

解释
_idObjectId(5a7d50bdd019f150f4ab8ef7)
d_name文件类型
d_type100
d_value[ { “sd_name” : “cms配置图片”, “sd_id” : “100001”, “sd_status” : “1”}]

user-test 用户测试

解释
_idObjectId(5abe3b9c5b05aa218434f4cf)
_classcom.xuecheng.framework.domain.test.UserTest
name传智播客
createTimeISODate(2018-03-30T13
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据库系统的结构三级模式结构 模式,是对数据库逻辑结构的描述,是对型的描述,不涉及具体值。(如学⽣,这张结构由Sno,sname等等属性构成)如下: 例⼦:"学⽣选课数据库"的模式: 在这⾥介绍⼀下实例: 是数据库某⼀时刻的状态——模式的⼀个具体值。(⼀个模式在不同的时刻可以有不同的实例) 同⼀个模式可以有多个实例。(学⽣选课数据库,有两个实例。分别是13年和14年的实例) 实例随数据库中的数据的更新⽽变动(随着时间的变化,会有新的学年新的学⽣选课实例) ⼀、从数据库管理系统⾓度看 在数据库系统中,⽤户看到的数据和计算机从存放的数据是两回事。但⼆者之间是有联系的,实际上它们之间已经通过了两次变换:第⼀次 是系统为了减少冗余,实现数据共享,把所有⽤户的数据进⾏综合,抽象成⼀个统⼀的数据视图(概念模型);第⼆次是为了提⾼存取效 率,改善性能,把全局视图的数据按照物理组织的最优形式存放(物理模型)起来。 美国国家标准委员会(ANSI)所属的标准计划合要求委员会(Standards Planning and Requirements Committee,SPARC)于1975 年公布了关于数据库标准的报告,提出了数据库的三级组织结构,称为SPARC分级结构,分别为内模式、模式、外模式。 说三级模式之前,先了解数据库系统模式的概念 数据库的三级模式是数据库系统内部的系统结构。 1.模式 模式也称为逻辑模式或概念模式,是对数据库中全体数据的逻辑结构和特征的描述、是对型的描述,不涉及具具体值、模式是相对稳定的, 是数据库系统模式结构的中间层,既不涉及数据库存储细节和硬件环境,也不涉及具体的应⽤程序、所使⽤的应⽤开发⼯具和⾼级程序设计 语⾔。 ⼀个数据库只有⼀种模式。数据库模式以某种数据模型为基础,统⼀综合地考虑了所有⽤户的需求,并将这些需求有机地结合成⼀个逻辑整 体。 模式是数据项值的框架。数据库系统的模式通常还包含访问控制、保密定义、完整性检查等⽅⾯的内容。 2.外模式 外模式也称为⼦模式或⽤户模式,它是⽤户能够看见和使⽤的局部数据的逻辑结构和特征的描述,是⽤户的数据视图,是与某⼀应⽤有关的 数据的逻辑⽰。 外模式⼀般是模式的⼦集,⼀种模式可以由多种外模式。由于它是各个⽤户的数据视图,所以,如果不同的⽤户在应⽤需求、看待数据的⽅ 式、对数据保密的要求等各⽅⾯存在差异,则对外模式的描述就是不同的。即使是模式中的同⼀数据,其在外模式中的结构、类型、长度、 保密级别等也可以不同。另外,同⼀外模式也可以为某⼀⽤户的多个应⽤系统所⽤,但是⼀个应⽤程序只能使⽤⼀种外模式。 外模式是保证数据库安全的⼀种有⼒措施,⽤户只能看见和访问所对应的外模式中的数据,数据库中的其他数据是不可见的。 3.内模式 内模式也称为存储模式,它是数据库在物理存储器上具体实现的描述,是数据在数据库内部的⽰⽅法,也是数据物理结构和存储⽅式的描 述。⼀个数据库只有⼀种内模式。 4.模式之间的映射 数据库系统的三级模式是数据库在三个级别上的抽象,把数据的具体组织留给数据库管理系统,⽤户就能够逻辑地处理数据,⽽不必关⼼数 据在计算机中的具体⽰⽅式和存储⽅式。为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两 层映射: (1)外模式/模式之间的映射 (2)模式/内模式之间的映射 ⼆、从构件⾓度看,数据库系统由硬件、软件等部分组成 三、从最总⽤户的⾓度来看 数据库系统的结构有: 单⽤户结构 主从式结构 分布式结构 客户--服务器 浏览器--数据库服务器
数据库设计 数据库设计-需求分析 需求分析 数据库设计-需求分析 需求分析的任务: 1. 确定所要开发的应⽤系统的⽬标。 2. 收集和分析⽤户对数据的要求。 3. 了解⽤户需要什么样的数据。      需求分析主要考虑"做什么",⽽不是"怎么做"的问题,从⽤户出发,从数据出发,从经验出发 需求分析的过程:    1.调查分析⽤户的活动:对新系统运⾏⽬标进⾏研究,明确⽤户的需求,了解⽤户当前的业务活动和职能。 1. 调查组织机构的总体情况,包括机构组成,部门职责和任务。 2. 调查部门的业务活动,包括各部门输⼊和输出的数据和格式。 推荐⽅法:⾯谈法,开调查会,问卷调查。          2.分析⽤户的需求:明确⽤户的各种需求,包括⽤户的信息需求,处理需求以及数据的安全性和完整性要求。 1. 信息需求:⽤户需要从数据库中获取的数据。由信息需求确定数据库中需要存储哪些数据。 2. 处理需求:⽤户为了得到需求的信息⽽对数据进⾏加⼯处理,包括响应时间。 3. 必须确定数据的安全性和完整性。 推荐⽅法:⾃顶向下的结构分析法,使⽤数据流图,数据字典描述系统。          3.确定新系统的边界:确定哪些功能由计算机完成,哪些功能由⽤户完成。       需求分析⽅法和⼯具: 1. 数据流图 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加⼯⾓度,以图形⽅式来达系统的逻辑功能、数 据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析⽅法的主要达⼯具及⽤于⽰软件模型的⼀种图⽰ ⽅法。数据流图达了数据和处理过程的关系。从逻辑上精确描述系统中数据和处理的关系。 例如:采购数据流图⽰例 2.数据字典 数据字典:是对数据流图中各类数据描述的集合。包括数据项,数据结构,数据流,数据存储和处理。 1. 数据项 数据项是不可再分的数据单位。 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他项的逻辑关 系,数据项之间的关系} 2. 数据结构 数据结构反映了数据之间的组合关系。⼀个数据结构可以由若⼲个数据项组成,也可以由若⼲个数据结构组 成,或者混合⽽成。 数据结构描述={数据结构名,含义说明,组成{数据项/数据结构}} 3. 数据流 数据流是数据结构在系统内传输的路径。 数据流描述={数据流名,说明,数据流来源,数据流去向,组成{数据结构},平均流量} 4. 数据存储 数据存储是数据结构停留或者保存的地⽅,也是数据流的来源和去向之⼀。可以是⼿⼯⽂档或者计算机⽂档。 数据存储描述={数据存储名,说明,编号,输⼊的数据流,输出的数据流,组成{数据结构},数据量,存取频 度,存取⽅式} 5. 处理过程 处理过程描述={处理过程名,说明,输⼊{数据流},输出{数据流},处理{简要说明}} 数据字典是关于数据库中数据的描述,即元数据,⽽不是数据本⾝。它在需求分析阶段确⽴,在数据库设计中不断修 改,充实,完善。 以上仅为本⼈学习过程中的知识总结,若有错误,还请诸位不吝赐教。
家教平台数据库设计 一、 需求分析 现有一个公益家教组织,依托高校大学生群体,招募大学生志愿者,对中学 生进行一对一的家教辅导, 在课程结束之后号召受助学员捐出一定资金资助一所 少数民族地区的贫困小学,帮助贫困学子继续学业。 我们需要为此组织开发一个家教平台系统, 经过可行性分析和初步的需求调 查,确定了系统的功能边界,该系统应能完成下面的功能: (1)活动介绍及贫困山区介绍 打开系统后, 主页会有公益家教活动的介绍和受捐助地区的介绍,方便用户 对本系统了解。 (2)用户注册功能 主页下方会有两个按钮,按照不同需求,选择"我是志愿者"或选择"我是 学员"进行登录或注册,已有账号者输入账号密码登录后即可进入个人主页,无 账号者填写相应的信息后注册成功,数据库中会据此添加一条记录。 (3)家教匹配功能 家教志愿者和学员有自己的主页,注册账号之后用账号登陆自己的主页,可 以浏览或修改自己的信息。 学员可以浏览家教志愿者的部分信息,选择家教志愿 者,付款后(考虑到财产安全,我们打算使用跳转到第三方支付的功能),家教 志愿者的姓名和联系方式会由隐藏的状态变为可见。 (4)购买网络课程功能 我们在数据库系统中存放了一些网络课程的信息, 学员可以浏览网络课程的 介绍,购买付款后,网络课程的网页链接和提取码会由隐藏状态变为可见。 1、 数据流图 2、数据字典 (1)数据项(DI) 1.1 数据项列 数据项编号 数据项名 数据项含义 类型 长度 别名 DI-1 VolunteerNo 志愿者编号 字符型 10 DI-2 StudentNo 学员编号 字符型 10 DI-3 MatchNo 匹配号 字符型 10 DI-4 BookNo 网络课程编号 字符型 10 (2)数据结构(DS) 1.2 数据结构 数据结 构编号 数据结构名 数据结构含义 组成 DS-1 志愿者 定义了一个家教志愿 者的有关信息 姓名+性别+学院专业+科目+联系方式 DS-2 学员 定义了一个中学生学 员的有关信息 姓名+性别+年级+弱势科目+地址 DS-3 网络课程 定义了一个网络课程 的有关信息 课程名+价格+网页链接 (3)数据流(DF) 数据流编 号 数据流名 称 数据流含义 来源 去向 数据流量 组成 DF-1 匹配单 匹配学员和志愿者的记 录 志愿者 匹配学 员 100 对/天 学员编号 +志愿 者编号 DF-2 课程单 匹配学员和网络课程的 记录 学员 购买网 络课程 500 本/天 学员编号+课程号 (4)数据存储(DSA) 数据存储编号 数据存储名称 数据存储含义 组成结构 说明 DSA-1 志愿者 存放志愿者有关信息 姓名+性别+学院专 业+科目+联系方式 DSA-2 学员 存放学员有关信息 姓名+性别+年级+弱 势科目+地址 (5)处理过程 处理过程编号 处理过程名称 输入 输出 加工逻辑 DS-1 审核志愿者 志愿者编号 认定志愿者未被匹配 根据志愿者和匹配, 如果志愿 者编号在匹配中存在, 那么志愿 者已经被匹配, 不能再与其他学员 匹配 二、 概要设计 1、 标识家教平台系统中的实体和属性 (1)志愿者(编号、姓名、性别、学院、年级、专业、擅长科目、 联系方式、备注) (2)学员(编号、姓名、性别、学校、年级、弱势科目、家庭住 址、联系方式) (3)网络课程(课程号、课程名、课时、价格、网页链接、提取 码) 2、 确定实体间的联系 3、 合并的总 E-R 图 三、 逻辑结构设计 将在概念结构阶段得到的基本 E-R 图转换成关系模型,如下所示: 转换的关系模型如下: 志愿者(编号、姓名、性别、学院、年级、专业、擅长科目、联系方式、备注) 学员(编号、姓名、性别、学校、年级、弱势科目、家庭住址、联系方式) 网络课程(课程号、课程名、课时、价格、网页链接、提取码) 选择(学员.编号,志愿者.编号) 具体说明如下: 关系名 属性及码 其他约束条件 志愿者 编号、姓名、性别、学院、年级、 专业、擅长科目、联系方式、备 注 1、 联系方式不允许为空; 2、 擅长科目不允许为空 学员 编号、姓名、性别、学校、年级、 弱势科目、家庭住址、联系方式 1、 弱势科目不允许为空 2、 联系方式不允许为空 网络课程 课程号、课程名、课时、价格、 网页链接、提取码 1、 课程名不允许为空 2、 网页链接不允许为空 3、 提取码不允许为空 选择 学员.编号,志愿者.编号 1、 学员编号引用学员关系中的 编号 2、 志愿者编号引用志愿者关系 中的编号 四、 物理结构设计 将关系设计成 SQL Server 下相应的 志愿者 字段名 字段含义 字段类型 长度 是否为空 列级约束 编号 Char 10 NOT NULL Primarykey 姓名 C
新⼿来看:如何设计数据库结构   有⼀定启发的,前⾯⼏段就不⽤看了,重点在后⾯。   本⽂为开发⼈员提供了⼀些技巧,使⽤这些技巧可以在设计 Access 时避免某些问题。本⽂适⽤于 Microsoft Access 数 据库 (.mdb) 和 Microsoft access 项⽬ (.adp)。   简介   在设计数据库时,最重要的步骤是要确保数据正确分布到数据库中。使⽤正确的数据结构,可以极⼤地简化应⽤程序 的其他内容(查询、窗体、报、代码等)。正确进⾏设计的正式名称是"数据库规范化"。   本⽂简要介绍数据库规范化的基本概念和⼀些需要注意并⼒求避免的常见问题。   理解您的数据   在设计之前,应明确您打算如何处理数据,还要了解随着时间的推移数据会发⽣什么样的变化。您所做的假设将会影响 最终的设计。   您需要什么样的数据?   设计应⽤程序时,关键要了解设计的最终结果,以便确保您准备好所有必需的数据并知道其来源。例如,报的外观、每 个数据的来源以及所需的所有数据是否都存在。对项⽬损失的莫过于在项⽬后期发现重要报缺少数据。   知道需要什么样的数据后,就必须确定数据的来源。数据是否从其他数据源中导⼊?数据是否需要清理或验证?⽤户是否 需要输⼊数据?   明确所需数据的类型和来源是数据库设计的第⼀步。   您打算如何处理这些数据?   ⽤户是否需要编辑这些数据?如果需要,应如何显⽰数据以便于⽤户理解和编辑?有没有验证规则和相关的查找?要求 对编辑和删除保留备份的数据输⼊有没有相关联的审核问题?需要为⽤户显⽰哪些摘要信息?是否需要⽣成导出⽂件?了解这 些信息后,就可以想象字段之间是如何相互关联的了。   数据之间如何相互关联?   将数据分组放⼊相关字段(例如与客户相关的信息、与发票相关的信息等),每个字段组都代要建⽴的。然后考虑如 何将这些相互关联。例如,哪些具有⼀对多关系(例如,⼀个客户可能持有多张发票)?哪些具有⼀对⼀关系(这种情 况下,通常会考虑将其组合到⼀个中)?   随着时间的推移数据会发⽣什么样的变化?   设计之后,常常会由于没有考虑时间的影响⽽导致以后出现严重问题。许多设计在当时使⽤时效果⾮常好,但是,常 常会因为⽤户修改数据、添加数据以及随时间的推移⽽崩溃。开发⼈员经常会发现需要重新设计结构来适应这些变化。结构发⽣变化时,所有相关的内容(查询、窗体、报、代码等)也必须随之更新。理解并预测数据会随时间推移发⽣哪些 变化,可以实现更好的设计,减少问题的发⽣。   学习如何使⽤查询   了解如何分析和管理数据同样很重要。您应该深刻理解查询的⼯作原理,理解如何使⽤查询在多个之间链接数据,如何 使⽤查询对数据进⾏分组和汇总,以及如何在不需要以规范化格式显⽰数据时使⽤交叉查询。   好的数据设计的最终⽬标就是要平衡两个需要:既要随着时间的推移有效地存储数据,⼜要轻松地检索和分析数据。理解 查询的功能对正确设计很有帮助。   数据库规范化概念   这部分介绍数据库规范化所涉及的基本概念,⽽不是对数据库规范化进⾏理论性的探讨。如何在您的实际情况中应⽤这些 概念可能会随着应⽤程序需要的不同⽽有所变化。这部分的⽬的是理解这些基本概念、根据实际需要应⽤它们,并理解偏离这 些概念将会出现哪些问题。   将信息存储在⼀个地⽅   ⼤部分数据库开发⼈员都理解数据库规范化的基本概念。理想情况下,您希望将相同的数据存储在同⼀个地⽅,并在需要 引⽤时使⽤ ID 来进⾏引⽤。因此,如果某些信息发⽣了变化,则可以在⼀个地⽅进⾏更改,⽽整个程序中的相应信息也会随 之更改。   例如,客户会存储每个客户的记录,包括姓名、地址、电话号码、电⼦邮件地址以及其他特征信息。客户中可能包含 的 CustomerID 字段(通常是 Autonumber 字段),这个字段即该的主键字段,其他使⽤它来引⽤该客户。因此,发票 可以只引⽤客户的 ID 值,⽽不是在每张发票中存储客户的所有信息(因为同⼀个客户可能会持有多张发票),这样利⽤客户 的 ID 值即可从客户中查找客户的详细信息。使⽤ access 中功能强⼤的窗体(使⽤组合框和⼦窗体),可以轻松地完成这 项⼯作。如果需要修改客户信息(例如新增电话号码),只需在客户中修改,应⽤程序中引⽤该信息的任何其他部分都会随 之⾃动更新。   使⽤正确规范化的数据库,通过简单的编辑即可轻松处理数据随时间推移⽽发⽣的更改。使⽤未正确规范化的数据库,通 常需要利⽤编程或查询来更改多条记录或多个。这不仅会增加⼯作量,还会增加由于未正确执⾏代码或查询⽽导致数据不⼀ 致的可能性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值