创新实训(2)——数据库设计

概述

本实验数据库主要存储五部分内容:

  1. 用户信息
  2. 日志
  3. 古籍信息
  4. 文章信息
  5. 古文字信息
  6. 图片信息

其中,用户信息、古籍信息和日志采用mysql存储。
文章信息由于古文格式多样化,部分信息可能缺失,因此采用mongoDB存储,从而节省存储空间。
古文字的内容同样繁多而杂乱,因此也采用mongoDB存储。

概念设计

用户信息

用户信息使用mysql数据库存储

字段名称字段类型长度是否非空注释
uidvarchar255Yes主键用户ID
usernamevarchar255Yes用户名
passwordvarchar255Yes密码
nicknamevarchar255No昵称
emailvarchar255No用户邮箱
phoneintNo手机号
sexintNo0-男 1-女
birthdayvarchar10Noyyyy-mm-dd
imgurlvarchar255No用户头像的链接
rolevarchar255No用户的身份

古籍信息

书籍信息使用mysql存储

字段名称字段类型长度是否非空注释
addTimedatetimeYes主键添加时间
bookAuthorvarchar255No书籍作者
dynastyvarchar255No朝代
booknamevarchar255No书籍名称
pulishedTimedateNo成书日期
totalArticlevarchar255No文章数目
uIdvarchar255Yes创建者id

文章信息

文章是多种多样的,有些文章可能作者信息丢失,有些文章可能缺失数据,因此使用mongoDB,减少空白数据的空间占用

字段名称字段类型注释
titleString文章标题
booknameString书籍名称
articleAuthorString文章作者
contentString正文
imgurlString古籍图片链接
notesarray简要存储每个字的字形、读音等信息
XMLStringXML链接
annotationString文章的注释
pageInt32页数

存储格式如下:

{
    "_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存储,并且实现了倒排索引来加快查询速度

字段名称字段类型注释
wordString文字
pronunciationString读音
meaningString文字意义
notesString注释
imgurlString图片链接
diff_formarray同一个字的不同写法
diff_pronarray同一个字的不同读音
articleString包含这个字的文章

结构如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

来看看小兔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值