2021SC@SDUSC- SDUDOC- blog02

2021SC@SDUSC
上周与D老师的会议上进行了PPT展示,主要内容是对项目的整体理解。发现的问题是:需求功能点基本梳理清楚,具体的理解与实现方法还有很大的差距,需要多补充基础知识。
同时先前制定的XML规范被驳回,老师帮助重新梳理了XML规范,讲通应该如何制定。小组本周会重新整理。
在这里插入图片描述
本周学习mongodb并分析目前项目的数据库架构。MongoDB是文档型的非关系型数据库。最直观的理解是,在关系型数据库中每一行的数据,对应mongodb里是一个文档。

mongodb的文档是以binary json格式存储的,其格式就是json格式。一个document里可以包含多种类型的field,可以是日期、数字等,也可以是数组,还可以内嵌别的文档。

MongoDB没有固定的行列组织结构,这是no-sql与rdbms最大的区别之一,同时mongodb也不需要预先定义字段类型与数量,可灵活增加或变更字段,对于频繁变化的业务的数据模型非常适合。

MongoDB不支持join,对类似情况的处理方式是直接将有关联的表信息组织成嵌套的层级文档结构。
发现其优点是减少了上层文档的数据冗余,如果是embedded data形式的话,可以一次获取对应关系的所有明细数据。

本项目数据库部分代码分析:
需要存储:

用户信息
日志
古籍信息
文章信息
古文字信息
图片信息
其中,用户信息、古籍信息和日志采用mysql存储。
文章信息由于古文格式多样化,部分信息可能缺失,因此采用mongoDB存储,从而节省存储空间。古文字同理也采用mongoDB存储。
文章信息
文章是多种多样的,有些文章可能作者信息丢失,有些文章可能缺失数据,因此使用mongoDB,减少空白数据的空间占用。


{
“_id”: ObjectId(“604df4373e48000080001e62”),
“title”: “”,
“bookname”: “”,
“articleAuthor”: “”,
“content”: “”,
“imgurl”: “”,
“notes”: [
{
“word”: “”,
“pronunciation”: “”,
“annotation”: “”,
“location”: “”,
“label”: [ ]
}
],
“XML”: “”,
“annotation”: “”,
“page”: 0
}

其中notes是一个对象数组,储存每个字的简要信息,方便查询,格式如下:

“notes”: [
{
“word”: “”,
“pronunciation”: “”,
“annotation”: “”,
“location”: “”,
“label”: [ ]
}
],

古文字信息
古文字信息可扩展性很强,使用mongoDB存储,并且实现了倒排索引来加快查询速度

结构如下:

{
“_id”: ObjectId(“604df63f3e48000080001e63”),
“word”: “”,
“pronunciation”: “”,
“meaning”: “”,
“notes”: “”,
“imgurl”: “”,
“diff_form”: [
{
“id”: “”
}
],
“diff_pron”: [
{
“id”: “”
}
],
“article”: [
{
“id”: “”
}
]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chi Z犬里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值